为什么 session.save(object) 在休眠时不自动设置 id?
why session.save(object) does not set id automatically in hibernate?
我正在使用 hibernate 作为我的应用程序的 JPA 提供程序,现在我需要我需要最近存储的请求对象的 ID,但是当我执行 request.getId
时它会打印 null
.
System.out.println("before save : request id's = "+request.getId());
session.save(request);
System.out.println("after save : request id's = "+request.getId());
我关注了这个question。
此代码的输出:
before save : request id's = null
after save : reqeust id's = null
public class Request implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
由于id是由数据库生成的,只有在实际写入实体后才会存在。由于 hibernate 试图延迟实际写入,因此它可能会保护一些数据库命中,session.save()
不一定会触发 id 生成。
尝试在保存后添加 session.flush()
,然后查看是否填充了 id。
我正在使用 hibernate 作为我的应用程序的 JPA 提供程序,现在我需要我需要最近存储的请求对象的 ID,但是当我执行 request.getId
时它会打印 null
.
System.out.println("before save : request id's = "+request.getId());
session.save(request);
System.out.println("after save : request id's = "+request.getId());
我关注了这个question。
此代码的输出:
before save : request id's = null
after save : reqeust id's = null
public class Request implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
由于id是由数据库生成的,只有在实际写入实体后才会存在。由于 hibernate 试图延迟实际写入,因此它可能会保护一些数据库命中,session.save()
不一定会触发 id 生成。
尝试在保存后添加 session.flush()
,然后查看是否填充了 id。