Java 使用hibernate实体管理器更新实体
我有一个实现,其中我的实体Java 使用hibernate实体管理器更新实体,java,database,hibernate,jpa,Java,Database,Hibernate,Jpa,我有一个实现,其中我的实体公司扩展了根实体 strategy =InheritanceType.JOINED.(I am using hibernate-entitymanager) 我有其他不扩展RootEntity的实体。当我创建所有实体时,它确实会创建。但是当我尝试更新RootEntity的扩展实体时,它不会更新。但非扩展实体正在更新。更新代码位于GenericDaoImpl中,因此它是相同的更新方法 有什么问题吗?我的代码是: @Transactional(value="tx") p
公司
扩展了根实体
strategy =InheritanceType.JOINED.(I am using hibernate-entitymanager)
我有其他不扩展RootEntity
的实体。当我创建所有实体时,它确实会创建。但是当我尝试更新RootEntity
的扩展实体时,它不会更新。但非扩展实体正在更新。更新代码位于GenericDaoImpl
中,因此它是相同的更新方法
有什么问题吗?我的代码是:
@Transactional(value="tx")
public E update(E entity) {
E merged = null;
RootEntity baseEntity = null;
if(entity instanceof RootEntity ){
baseEntity = (RootEntity)entity;
merged = entityManager.find(entityClass, baseEntity.getId());
}
merged = entityManager.merge(entity);
entityManager.flush();
return merged;
}
我尝试合并的对象:
public class Societa extends RootEntity implements Serializable{
private static final long serialVersionUID = 1L;
// ASSOCIAZIONE CAMPI DB VARIABILI NELLA CLASSE
@Column(name="nomeSocieta",nullable = false,columnDefinition="CHAR(80)")
private String nomeSocieta;
......
}
我的根实体是:
@Entity
@Inheritance(strategy =InheritanceType.JOINED)
public class RootEntity {
private static final long serialVersionUID = 1L;
@Id
@Column(name="id",nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...getters/setters..
}
纽瓦兹,我需要看看你的
根实体
和公司
实体
而且,我很难理解您提供的代码-
entityManager.flush()
您不必这样做,如果我理解正确,您使用的是spring,并且@Transactional
在调用方法完成时自动关闭/刷新事务你能举一个你试图合并的对象不起作用的例子吗?您是否收到错误消息,或者您只是没有看到数据库中的任何更改?嗨,我添加了一些代码示例,它没有给出任何错误,只是它没有更新。不要这么说,告诉我们您是如何解决的。这个论坛是为了帮助所有人,而不仅仅是你