JDO和Cloud SQL更新对象,带有MakePersistEntall



我正在使用JDO使用Google Cloud SQL。当我尝试使用JDO PersistenceManager使用新键存储新对象时,它可以正常工作,但是当我尝试更新已经插入DB中的实体时,我会遇到错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '503062001-43661003' for key 'PRIMARY'

关键确实是重复的,但我想更新该对象。

可以使用PersistentManager.makepersistentall()方法或以另一种方式避免手动编写更新查询?

更多详细信息:我试图坚持的对象是这样定义的:

PersistenceCapable(table = "xxx")
public class XXX {
   @PrimaryKey
   @Index(name = "xxx_id")
   private Long userId;
   @PrimaryKey
   @Index(name = "xxx_idx")
   @Column(length = 128)
   private String otherId;
   ...
}

如果要更新对象,则首先检索对象并进行更新(在同一TXN中,或分离并在分离时进行更新)。所有这些都将在JDO规格

中描述

例如https://db.apache.org/jdo/pm.html,然后页面到"更新对象"

相关内容

  • 没有找到相关文章

最新更新