Java 如何使用EclipseLink更新MySQL表中的列?
我想知道如何使用EclipseLink更新表中的列。 我尝试使用Java 如何使用EclipseLink更新MySQL表中的列?,java,mysql,web-services,eclipselink,sql-update,Java,Mysql,Web Services,Eclipselink,Sql Update,我想知道如何使用EclipseLink更新表中的列。 我尝试使用EntityManager.merge(myObject)
EntityManager.merge(myObject)但是EclipseLink抛出了一些异常,说它不能用空值更新其他列。
我试图将@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呢?那是什么?什么时候用?