2014-03-04 51 views
2

我不是最好的Hibernate映射器,所以请裸露在我身边。在Hibernate中使用注释的接口映射集合

我有一个接口名为Rule与2个实现类,他们都共享一个抽象基类。

@MappedSuperclass 
public interface Rule { .. } 

@Entity 
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) 
public abstract class BaseRule implements Rule { 

@Entity 
public class ImlementingRule1 extends BaseRule { 

@Entity 
public class ImlementingRule1 extends BaseRule { 

我使用这个Rule接口在containgRules类这样:

@OneToMany 
@JoinColumn(name = "RULES_ID") 
private List<Rule> rules; 

无论设置我尝试我总是最后:

Caused by: org.hibernate.MappingException: Cannot use identity column key generation with <union-subclass> mapping for: mynamespace.BaseRule 

也许我过于复杂有些事情我不知道。任何线索或提示都更受欢迎!

回答

0

我个人找不到其他解决方案,而不是使用抽象基类而不是接口。

@OneToMany 
@JoinColumn(name = "RULES_ID") 
private List<BaseRule> rules; 

它指出right here:目前不支持

注解接口。