【问题标题】:JPA: How to get updated entity object after insert?JPA:插入后如何获取更新的实体对象?
【发布时间】:2012-03-31 22:03:07
【问题描述】:

抱歉,不清楚如何问这个问题。这是我的场景:

控制器

HostSite hostSite=new HostSite(); 
hostSite.setUrl("www.somesite.com");
// hostSite.getId() is null, naturally
hostSiteService.saveHostSite(hostSite);
// hostSite.getId() is still null

HostSiteServiceImpl

public void saveHostSite(HostSite hostSite) {
    hostSiteDAO.save(hostSite);
}

HostSiteDAOImpl

public void save(HostSite hostSite) {
    if(hostSite!=null) {
        getEntityManager().merge(hostSite);
    }
}

如您所见,我没有在任何地方修改实体对象引用。我的印象是合并操作将使用已在表级别初始化的数据更新持久对象。在我的情况下,它只是自动生成的 id。但是可能还有其他事情,例如创建时间戳等......我需要做些什么来在持久对象上设置这个生成的 id 吗?操作本身没有问题。记录与生成的 id 一起保存在表中。

我正在使用 Hibernate 4 作为 JPA 提供程序。

【问题讨论】:

    标签: jpa hibernate-4.x


    【解决方案1】:

    'merge() 返回新实例,所以只需让每个方法都返回您的实体

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多