我可以通过GeneratedValue Entity Ids订购以获取最后添加的实体

时间:2014-05-13 20:44:06

标签: database java-ee jpa

在我的SessionBean的每个请求中,我需要接收最后添加的JPA实体实例,其PK用@Id @GeneratedValue(strategy=GenerationType.AUTO) Long id声明。

我目前的做法是在查询中添加ORDER BY e.id DESC。不幸的是,我不确定生成的ID是否严格增加后续持久化实体,我似乎无法找到有关该主题的任何文档。任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:1)

JPA没有指定id生成的顺序,因此提供者可以自由发出非顺序ID。

如果您想依赖实体广告订单,请考虑向您的实体添加时间createdAtmodifiedAt字段。一些持久性框架使用这种方法,例如, ActiveRecord

您可以使用基本实体类中的回调将此值的生成留给提供程序:

@PrePersist
void makeCreationTimestamp() {
 createdAt = System.currentTimeMillis();
}