我有两个类实体有一些相同的属性。如何从2表中选择分页并将其转换为类dto?
@Entity
class A {
var id: Long,
var name: String,
var price: Float,
...//more
}
class B {
var id: Long,
var name: String,
var price: Float,
var isSpecial: Boolean,
...//more
}
我希望你能从 class A
以及 class B
与 isSpecial = true
. 我尝试用hql选择新的,但hibernate不支持联合。我尝试使用本机查询,然后引发resultset异常。
3条答案
按热度按时间oxiaedzo1#
始终可以使用创建数据库视图
UNION
. 然后按视图Map一个实体,并像其他实体一样使用它。ttcibm8c2#
解决方案是使用继承Map类并查询公共基类。然后可以使用dto投影查询dto。
quhf5bfb3#
hibernate还不支持联合。您可以使用本机查询,也可以使用blaze持久性,后者在hibernate之上工作,并支持union等set操作。