java NativeQuery映射和@SqlResultSetMapping以及多个@Entity类,是否可能?
有一种情况,我有一个本机查询,其中包含两个实体类的数据,如何通过@SqlResultSetMapping将该数据映射到实体类? 例如
Native query:- select customer.name, address.area from customer, address where customer.id=address.custid;
2个实体类,如customer和address,其中name在customer中作为变量,area在address实体类中作为变量
Customer class:
@Entity
public class Customer {
@Id
private String name;
getters and setters
.....
.....
.....
}
Address Class entity:
@Entity
public class Address{
@Id
private String area;
getters and setters
.....
.....
.....
}
要将本机查询映射到entity类,可以在entity中提供@SqlResultSetMapping并在nativeQuery中提供映射的名称
Query query = entityManager.createNativeQuery(sbQuery, "checkInfoMapping");
它将检查映射名称并映射到相应的实体类,这可以针对单个实体类完成
如果我有来自2个实体类的本机查询的数据,可以这样做吗?如果是,我如何将其映射到具有本机查询的实体类
# 1 楼答案
你应该这样做:
问题是:
# 2 楼答案
最简单的方法是在本机查询中使用JOIN,如下所示
Native query :- select c.name,a.area from customer c JOIN address a ON c.id = a.custid
因此,您只需在客户实体上提供结果集映射