繁体   English   中英

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

[英]How do I update a column in a table in MySQL using EclipseLink?

我想知道如何使用EclipseLink更新表中的列。 我尝试使用EntityManager.merge(myObject); 但是随后EclipseLink引发了一些异常,说它无法用空值更新其他列。 我试图将@ChangeTracking属性添加到我想更新的类中,以便它仅更新已更改的列,但是它不起作用,我什至不知道这是否是正确的方法。

那么,如何使用EclipseLink更新表中的单个列?

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

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

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

或从EM读取的分离实例,以后再使用em.merge。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM