【问题标题】:Hibernate - get back persisted Object to get generated dataHibernate - 取回持久化对象以获取生成的数据
【发布时间】:2014-07-26 07:48:52
【问题描述】:

我使用 Hibernate 注释为对象自动生成 UUID。 每个对象在文件服务器上都有自己的目录,该目录由生成的对象的 UUID 命名。

@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
@NotNull
@Column(name = "m_uuid")
private String mUUID;

UUID 是唯一能让您确定识别对象的字段。有没有办法在持久化对象后取回生成的值,无需创建新查询

【问题讨论】:

    标签: hibernate persistence entitymanager


    【解决方案1】:

    你需要持久化和刷新持久化上下文:

    entityManager.persist(entity);
    entityManager.flush();
    entity.getId();
    

    这样可以保证实体被附加,并且唯一执行的语句是 INSERT 语句,因此不需要查询语句。

    【讨论】:

    • 我也刚刚意识到ID会在持久化后保存到对象中。我会接受这个答案。
    • 但是你也需要刷新,因为那是状态变化与数据库同步的时​​候。
    猜你喜欢
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多