Ejb3.0 获取自增主键

相信很多朋友都跟我一样对ejb3获取自增id有困惑,我自己也烦恼了很久。

网络上很多人都说

public Integer add(Object p) {
	em.persist(p);
	em.flush();		
	return p.getId();
}

 这种方法可以获取到自增的id

 

我尝试过这种方法获取自增的id,但是我获取的id与数据库序列自增的id不同

最后谷歌了一下,发现只要把触发器定义在实体bean就能够用上面的代码获取自增id

@Id  
@SequenceGenerator(name = "paper_question",sequenceName = "PAPAER",allocationSize = 1)  
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "paper_question")  
private Integer id;  

 其中@SequenceGenerator中的name就相当于数据库的触发器的名字,sequenceName与数据库的序列相对应

     @GeneratedValue中的generator与上面定义的触发器相对应,

另外在ejb上定义了触发器就不用再数据库上定义触发器了,要不就会每插入一条数据id就会增加2次。

这是我第一次写博客,写得不好的话欢迎大家评论或者提出更好的意见


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值