Я использую Google Cloud SQL с JDO. Когда я пытаюсь использовать JDO PersistenceManager для хранения новых объектов с новым ключом, он работает нормально, однако я получаю сообщение об ошибке, когда пытаюсь обновить объекты, уже вставленные в базу данных:
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '503062001-43661003' for key 'PRIMARY'
Ключ действительно дублирован, но я хочу обновить этот объект.
Можно ли сделать это с помощью метода PersistentManager.makePersistentAll () или другим способом, который позволяет избежать написания запроса UPDATE вручную?
Подробнее: объект, который я пытаюсь сохранить, определяется следующим образом:
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;
...
}