【发布时间】:2012-10-06 14:31:18
【问题描述】:
我有一个扩展 Model 的 Topic 类。
创建表主题的第一条记录很好,但无法创建另一条记录:
[PersistenceException: 错误执行 DML bindLog[] 错误[错误: 重复键值违反唯一约束“pk_topics”\n 详细信息: 键 (id)=(1) 已存在。]]
异常当然发生在这一行:
topic.save();
这很奇怪,因为:
- 以前可以正常工作。
- 属性
id是使用注释@Id定义的,它假设自动递增 到下一个值,但我得到关于duplicate id 的异常。
我应该怎么做才能解决这个问题?
class Model(当然不是所有的,只有相关的):
@Entity
@Table (name = "topics")
public class Topic extends Model {
@Id
public long id;
public String title;
public String content;
@ManyToOne
@JoinColumn(name = "forumId")
public Forum forum;
@ManyToOne
@JoinColumn(name = "userId")
public User user;
public Date date;
public static void create(Topic topic) {
topic.save();
}
【问题讨论】:
-
你能显示你的模型和保存它的代码吗?你使用固定装置吗?你的播放版本和操作系统是什么? @Id 是不够的,也许你需要一个序列:objectdb.com/java/jpa/entity/generated。我使用了身份。
-
我添加了
Topic类的代码。我不知道什么是固定装置。我正在使用播放! linux Ubuntu下2.0。
标签: java jpa web playframework-2.0 ebean