不使用注释参数"targetEntity"的Hibernate接口映射

Pum*_*ine 7 java hibernate jpa jpa-2.0

我最近试图为我的一些hibernate映射实体引入接口,但无法弄清楚如何配置映射.

当我使用接口而没有任何进一步的声明时,我总是得到以下异常:

org.hibernate.MappingException: Could not determine type for: ...MyInterface 
Run Code Online (Sandbox Code Playgroud)

然后当我明确定义targetEntity时,我发现一切正常:

   @OneToOne(targetEntity=InterfaceImpl.class)
   private MyInterface myInterface;
Run Code Online (Sandbox Code Playgroud)

不幸的是,这个解决方案在我的情况下不起作用:我无法通过注释定义targetEntity,因为我想将此类提取到一个不包含甚至不知道接口的最终实现的公共外部库.

那么是否有另一种方法来声明应该使用哪种实现,我可以在提取的库之外使用? 在此输入图像描述

小智 1

在抽象中定义映射契约,然后在实现类中@MappedSupperclass 覆盖它。@AssociationOverride