【发布时间】:2017-07-04 04:42:56
【问题描述】:
我是 JPA 新手,请留在我身边, 我需要一些帮助,因为我无法决定使用哪个选项。
选项 1: 我将注释放在实体字段上方,并仅在创建时通过构造函数允许对对象的写访问(然后将其保存到数据库中)。据我了解,JPA 管理器自其字段访问以来仍然可以执行更新查询(如hier 所述)。 这样,如果我想更新或更改条目,我必须创建一个新查询 但是我必须自己创建这些查询(如hier 所述)。
选项 2: 我将注释放在 getter/setter 上方并使用属性访问 然后将实体管理器的 find 方法与 setter 一起使用(如hier)。这将为我创建查询,但现在设置器允许在创建对象后更改对象(在我将其添加到数据库之前)。
我的看法 此外,虽然hier 最佳答案建议使用设置器
更新实体的正确方法是设置属性 您想通过设置器进行更新并让 JPA 生成 在刷新期间为您更新 SQL,而不是手动编写它
Hier 第二个答案(投票最多)指出,字段访问是要走的路。
我很困惑,但可能会将第二个选项与构造函数一起使用,并将设置器仅用于实体管理器并将设置器包设为私有。
信息
- 我使用 eclipseLink 2.5+ 作为持久性提供程序和 JPA 2.0 使用 Java EE6
- 我应该提到我使用 SAP 的 Hana Cloud Platform 和 那里tutorial 使用带有设置器的第一个选项 构造函数。
问题: 我是否应该将选项 1 或 2 用作 JPA 新手以及仅用于记录目的的数据库,其条目将在 1-30 天后被删除。 ?
【问题讨论】:
-
我以前读过它,它支持第二个选项,现在我看到了具体的访问部分,但是对于我的场景会有什么变化?
标签: java jpa eclipselink jpa-2.0 sap-cloud-platform