我有一个简单的pojo,由于休眠状态而被填充。我希望看到这个POJO的变量被映射到一个非常特定的SQL查询,我想知道是否有可能在hibernate.xml文件中创建这样的映射?ORM将变量映射到休眠状态下的SQL查询
非常感谢
我有一个简单的pojo,由于休眠状态而被填充。我希望看到这个POJO的变量被映射到一个非常特定的SQL查询,我想知道是否有可能在hibernate.xml文件中创建这样的映射?ORM将变量映射到休眠状态下的SQL查询
非常感谢
纯JPA没有简单的方法来做到这一点。最好的方法是使用Hibernate's @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中,它为它赋值。
这似乎很好,是否有可能在xml映射文件中做到这一点,而不是作为注释? – Farid
是的,请参阅文档中的5.1.4.2:http://docs.jboss.org/hibernate/core/4.0/manual/en-US/html_single/#mapping-declaration-property – jpkrohling