gpt4 book ai didi

java - JPA-- 访问策略

转载 作者:太空宇宙 更新时间:2023-11-04 12:41:26 24 4
gpt4 key购买 nike

我想注释我的字段,因为 getter 和 setter 大多数时候都是由 IDE 生成的。当我用@Id注释标识符字段时,实体的访问策略变成基于字段的。但是,我不想在调用 getId() 时出现延迟初始化异常,以防实体延迟加载。

我想要注释字段,但我也想要基于属性的访问策略。我怎样才能做到这一点?

我将 @Access(AccessType.PROPERTY) 放在我的实体类之上,但随后我的 JPA 提供程序(即 Hibernate)抛出 org.hibernate.AnnotationException:没有为实体指定标识符:...

最佳答案

在实体上指定@Access(AccessType.PROPERTY)将导致提供程序仅查看注释和访问实体的属性,因此它应该忽略字段注释。

@Access(AccessType.PROPERTY) 注释也可以用在方法和字段上,从而允许使用不同的东西。在您的情况下,将其保留为默认值,继续向字段添加注释,但使用 @Access(AccessType.PROPERTY) 注释标记它们将导致提供程序拾取注释,但仍然使用属性来访问实体上的值。

正如评论中提到的,这不会影响惰性设置。

关于java - JPA-- 访问策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36796713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com