我想在Groovy Mixin中定义一个JPA持久化属性,然后在几个实体类中使用它。我无法使用JPA注释和Hibernate - 有没有人成功使用这种组合?
我设置了一个示例Maven项目,它显示了我正在尝试做的事情以及一个定义我想要的行为的JUnit测试。
https://github.com/gilday/groovy-mixin-jpa-test
简言之:
@Category(Person) class HasPreferences {
@ElementCollection
final Collection<Preference> preferences = []
}
@Entity
@Mixin(HasPreferences)
class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
long id
String name
}
答案 0 :(得分:1)
由于@Mixin
是动态的,我怀疑JPA能够找到你的混合属性。我认为你需要一些编译时代码生成,比如@Delegate
。即便如此,JPA仍会尝试保留生成的属性。有discussion in groovy mailing列表有关@Trait
注释的创建,可能是您想要的。