我确实需要根据某些条件从三个不同的表中获取数据。 例如
@Entity
class Order{
id;
type;
typeId;
@Join with boqTable to get the Boq Associated with if type == BOQ and id = typeId
@Join with customTable to get custom data associated if type == CUSTOM and id = typeId
}
我应该能够使用Order实体插入和更新子表。 我如何使用JPA / Hibernate ...我搜索了很多,我无法得到任何解决方案,除了在服务级别手动执行而不是在实体模型处理
答案 0 :(得分:1)
您可以使用2种非JPA兼容的Hibernate特定功能之一。如果条件是静态的,那么请参阅Hibernate @Where
注释。见2.4.6节:
https://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/
否则请参阅Hibernate过滤器:
Hibernate3能够预先定义过滤条件并附加 那些类级别和集合级别的过滤器。一个过滤器 criteria允许您定义类似于的限制子句 现有的"其中"类和各种可用的属性 集合元素。然而,这些过滤条件可以是 参数。然后,应用程序可以在运行时决定是否 应启用某些过滤器以及它们的参数值 应该。过滤器可以像数据库视图一样使用,但它们是 在应用程序内参数化。
https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/filters.html