3

我正在试验eclipselink。我正在尝试更新数据库中的现有实体。JPA 实体只有公共字段,并且字段使用 JPA 注释进行注释。该代码使用EntityManager.find().

该代码创建 JPA 实体的实例,为实体的公共字段分配值并调用 EntityManager.merge(entity) 方法。Eclipselink 不更新数据库记录。我启用了日志以查看 Eclipselink 是否发出 SQL 语句。

Eclipselink 不发布任何更新声明。这是否意味着即使我使用字段持久性,我也不能为实体的公共字段赋值而不是使用 setter 方法?

谢谢, 奇尔

4

1 回答 1

3

Weaving 引入了一些优化,例如惰性 onetoone 和 manytones 以及更改跟踪。这些可以工作的唯一方法是如果您在实体上使用访问器方法,但如果这不是一个选项,您可以根据需要关闭它们。 有关更改跟踪的详细信息,请参见 http://eclipse.org/eclipselink/documentation/2.4/jpa/extensions/a_changetracking.htm 。

于 2012-10-29T12:13:59.983 回答