今天在将ejb3的工程部署到jboss启动时报错:
State: FAILED
Reason: javax.persistence.PersistenceException: org.hibernate.MappingException: Cannot use identity column key generation with <union-subclass> mapping for: com.xxx.xxxx
后来发现问题所在:
继承策略我选择了@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS),
同时在父类中设置了ID生成策略为:
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public Long getId() {
return id;
}
而在这种策略下使用unnion-subclass 元素时 父类的标识属性生成器不能使用“indentity” ,将策略改为
@GeneratedValue(strategy=GenerationType.TABLE)
问题解决。