jmo*_*ira 10 java hibernate jpa composition
我需要知道是否可以通过扩展它来为某个POJO JPA实体(使用hibernate提供程序)添加一些属性和行为,然后使entityManager返回扩展对象而不仅仅是pojo实体,如下例所示:
POJO JPA实体类
@Entity
@Table("test")
public class Test implements Serializable {
}
Run Code Online (Sandbox Code Playgroud)
扩展类
public class ExtendedTest extends Test {
...
}
Run Code Online (Sandbox Code Playgroud)
获取扩展类的对象
List<ExtendedTest> extendedList = entityManager.createNamedQuery("ExtendedTest.findByFoo").setParameter("foo", "bar").getResultList();
Run Code Online (Sandbox Code Playgroud)
我正在评估的另一种可能方式是使用复合实体扩展功能并委派所有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();
}
...
}
Run Code Online (Sandbox Code Playgroud)
任何建议将非常感谢.
Ily*_*lya 22
运用 @Inheritance
@Entity
@Table(name="TEST")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public class Test {
...
}
@Entity
public class ExtendedTest
extends Test {
...
}
Run Code Online (Sandbox Code Playgroud)
要么 @MappedSuperclass
@MappedSuperclass
public class Test {
...
}
@Entity
public class ExtendedTest
extends Test {
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24497 次 |
| 最近记录: |