[英]Get the last inserted record's primary key
我有一个名为Driver的Entity类,我的主键生成机制是
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
现在我需要向Driver添加“driverCode”属性,它应该是带前缀的唯一值(dri1,dri2),“dri”是前缀值,key应该是Driver的主键值,我要添加第一次创建驱动程序时的driverCode,为此我需要获取最后插入的驱动程序的主键,添加一个,并与前缀连接,任何人都可以在插入新的之前告诉如何获取最后插入的记录的主键记录,这有什么简单的方法吗?
先感谢您,
如果您flush()
您的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
而且,“获取最后插入的id”是非常棘手和危险的; 它似乎远没有那么简单。
对我有用的那个
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getId() {
return id;
}
然后你可以
object.getId();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.