由于hibernate,我有一个简单的pojo。我想看到这个 pojo 中的一个变量被映射到一个非常具体的 SQL 查询,我想知道这是否可以在 hibernate.xml 文件中创建这样的映射?
非常感谢
在纯 JPA 中没有简单的方法可以做到这一点。最好的办法是使用Hibernate 的 @Formula注释,您可以在其上指定应该用于获取字段数据的“SQL 片段”。
你在寻找这样的东西吗
String sql = "SELECT a.id As id, CONCAT(a.firstName,' ',a.lastName) AS advisorName from tableAdvis";
List<CollectionReport> collectionList = (List<CollectionReport>) getSession().createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(CollectionReport.class)).list();
这是我的 CollectionReport POJO 看起来像
public class CollectionReport {
private BigInteger id;
private String advisorCode;
private String advisorName;
//Getter & Setter
}
ResultTransformer 将获取查询结果并根据 POJO 中的属性名称为其分配值。