【发布时间】:2010-10-23 10:53:36
【问题描述】:
我有 jpa 注释的实体类,例如:
@Configurable
@Entity
@Table(name="PLAYERS")
public class Player
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="ID")
private Integer id;
@Column(name="NAME")
private String name;
@PersistenceContext
public transient EntityManager entityManager;
...
}
这一直很好,直到我决定使用以下语法创建带有备份 yaml 数据的表:
createNativeQuery("INSERT INTO PLAYERS ...")
成功创建后,当我尝试创建实体时:
Player player = new Player();
player.setName("new player");
player.persist();
我遇到了错误:
SQL Error: -1, SQLState: 23505
与 primary_keys 的重复有关,因为为新实体生成的 id = 1(与从备份数据中检索的行相同)。当然,我可以使用 jpa/java 语法从备份文件中检索数据,但在这种情况下,我无法控制插入数据的主键等。 如何解决这个问题呢 ?插入备份数据后有什么方法可以更新 id_generator 吗?
【问题讨论】:
标签: jpa primary-key generator derby