【发布时间】:2012-09-16 05:18:08
【问题描述】:
我需要知道是否可以通过扩展某些 POJO JPA 实体(使用 hibernate 提供程序)添加一些属性和行为,然后让 entityManager 返回扩展对象而不仅仅是 pojo实体,例如以下示例:
POJO JPA 实体类
@Entity
@Table("test")
public class Test implements Serializable {
}
扩展类
public class ExtendedTest extends Test {
...
}
获取扩展类的对象
List<ExtendedTest> extendedList = entityManager.createNamedQuery("ExtendedTest.findByFoo").setParameter("foo", "bar").getResultList();
我正在评估的另一种可能方式是使用复合实体扩展功能并委派所有 setter 和 getter,但这可能意味着需要大量使用大型表:
public class ExtendedTest2 {
private Test test;
public ExtendedTest2(Test test) {
this.test = test;
}
public getFoo() {
return test.getFoo();
}
public getBar() {
return test.getBar();
}
...
}
任何建议将不胜感激。
【问题讨论】:
-
我认为不可能,因为您可以愉快地将逻辑和其他属性放在实体类中。
-
我实际上可以向我的实体类添加其他属性和逻辑,但不能“高兴地”,我的想法是保留像 POJO 这样的实体并只保存表表示属性,事实上这正是我创建这个的原因首先是问题。
标签: java hibernate jpa composition