JPA中,在调用persist()时,数据库自动增长的主键如何处理

比如有一张表account是id,username,password.其中id是数据库自增长主键。创建了一个account对象a,字段username和password自... 比如有一张表account是 id, username, password.其中id是数据库自增长主键。
创建了一个account对象a,字段username和password自己赋值,那么em.persist(a)时,会报错。因为我没有给id..但id是数据库自增长的,我应该怎么处理啊?
初学者,恳请指教。
展开
 我来答
飘渺幻客
2011-05-12 · TA获得超过460个赞
知道答主
回答量:166
采纳率:0%
帮助的人:0
展开全部
你加事务处理了吗?
persist在事务外执行的话,不会执行insert语句
你用的什么数据库,oracle?
更多追问追答
追问
mysql 我加了事务处理了
追答
如果你id在数据库中已经使用了 自增列 的话
在你的代码上添加
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Integer getId() {
return id;
}
狂热1985
2011-05-12 · TA获得超过782个赞
知道小有建树答主
回答量:517
采纳率:0%
帮助的人:326万
展开全部
在数据库里面建一个序列,插入之前先查出序列号,然后把它当id插进去
追问
能给一些代码示例么?大概写几行就好了。谢谢啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
时间片轮转算法
2011-05-12 · TA获得超过1660个赞
知道小有建树答主
回答量:809
采纳率:0%
帮助的人:604万
展开全部
@GeneratedValue
这个默认的id生成策略是自增的。
你在你的实体类中标记了么?类似于下面的?
private Integer id;
private String name;
private Catalog parent;
private Set<Catalog> childs;
@Id
@Column(name="id",unique=true,nullable=false,insertable=true)
@GeneratedValue
public Integer getId() {
return id;
}
追问
没有。。我试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式