Java 如何使用EclipseLink更新MySQL表中的列?

Java 如何使用EclipseLink更新MySQL表中的列?,java,mysql,web-services,eclipselink,sql-update,Java,Mysql,Web Services,Eclipselink,Sql Update,我想知道如何使用EclipseLink更新表中的列。 我尝试使用EntityManager.merge(myObject)

我想知道如何使用EclipseLink更新表中的列。 我尝试使用
EntityManager.merge(myObject)@ChangeTracking
属性添加到我想要更新的类中,这样它就可以只更新已更改的列,但它不起作用,我甚至不知道这样做是否正确


那么,如何使用EclipseLink只更新表中的一列呢?

如果合并不起作用,很可能是因为您从头开始创建一个新实例,并且只尝试填充要更改的值。这将导致合并覆盖所有其他字段的空值。不要在不完整的实体上使用em.merge,因为它会合并每个JPA管理的字段-它无法知道您想要什么,必须合并实体的整个状态

而是使用您的更改来修改托管实例。一个简单的例子:

em.getTransaction().begin();
YourEntity instance = em.find(YourEntity.class, id);
instance.setYourAttribute(newValue);
em.getTransaction().commit();

或者从以后使用EM.merge的EM读入的分离实例

谢谢!成功了!@ChangeTracking呢?那是什么?什么时候用?