我是 JPA 新手,请和我在一起,我需要一些帮助,因为我无法决定使用什么选项。
选项1: 我将注释放在实体字段上方,并仅在创建时通过构造函数允许对对象的写访问(然后将其保存到数据库中)。据我了解,JPA 管理器仍然可以执行更新查询,因为它的字段访问(如hier所述)。这样,如果我想更新或更改条目,我必须创建一个新查询,然后我必须自己创建这些查询(如hier所述)。
选项 2: 我将注释放在 getter/setter 上方并使用属性访问,然后将实体管理器的 find 方法与 setter 一起使用(如hier)。这将为我创建查询,但现在设置器允许在创建对象后更改对象(在我将其添加到数据库之前)。
我的意见 另外,虽然最好的答案建议使用二传手
更新实体的正确方法是您只需通过设置器设置要更新的属性,并让 JPA 在刷新期间为您生成更新 SQL,而不是手动编写它
第二个答案(拥有最多的赞成票)指出,字段访问是要走的路。
我很困惑,但可能会将第二个选项与构造函数一起使用,并将设置器仅用于实体管理器并将设置器包设为私有。
信息
- 我使用 eclipseLink 2.5+ 作为持久性提供程序和 JPA 2.0 与 Java EE6
- 我应该提到我使用 SAPs Hana Cloud Platform,并且教程使用第一个选项和 setter 而不是构造函数。
问题: 作为 JPA 新手,我应该使用选项 1 还是 2,并且仅用于数据库,其条目将在 1-30 天后被删除。?