1

我想在 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
}
4

1 回答 1

1

由于@Mixin是动态的,我怀疑 JPA 能否找到您的混合属性。我认为您需要一些编译时代码生成,例如@Delegate. 即便如此,JPA 仍会尝试持久化生成的属性。groovy 邮件列表中有一个关于创建@Trait注释的讨论,这可能是您想要的。

于 2013-02-05T17:58:11.720 回答