获取最后插入的记录的主键

时间:2012-09-09 02:30:20

标签: java mysql jpa jpa-2.0

我有名为Driver的Entity类,我的主键生成机制是

 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 private Long id; 

现在我需要向Driver添加“driverCode”属性,它应该是带前缀的唯一值(dri1,dri2),“dri”是前缀值,key应该是Driver的主键值,我想要在第一次创建驱动程序时添加driverCode,为此我需要获取最后插入的驱动程序的主键,添加一个,并与前缀连接,任何人都可以告诉如何获取最后插入的记录的主键插入新记录,有没有简单的方法?

提前谢谢你,

2 个答案:

答案 0 :(得分:5)

如果您EntityManger @Id,则EntityManger em; Driver d = new Driver(); em.persist(d); em.flush(); long id = d.getId(); // this will give you the current record's id 字段将填充有关的值 保存到数据库中,因此您不需要找到最后插入的数据库,因为您已经知道当前插入的那个:

{{1}}


而且,“获取最后插入的id”是非常棘手和危险的;它似乎远没有那么简单。

答案 1 :(得分:1)

适合我的那个

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getId() {
    return id;
}

然后你可以

object.getId();