java - Spring hibernate : SQLQuery involving mapped entities

标签 java sql spring hibernate mapping

我有 Hibernate 生成的类,其中包含其他类 -

public class BookLoans implements java.io.Serializable {
    private BookLoansId id;
    private Borrower borrower;
    private LibraryBranch libraryBranch;
    private Book book;
    private Date dateOut;
    private Date dueDate;
}

其中 BookLoansId 是 -

public class BookLoansId implements java.io.Serializable {
private int bookId;
private int branchId;
private int cardNo;
}

分别是 Book、LibraryBranch 和 Borrower 表中的主键。当我运行此查询时 -

sessionFactory.getCurrentSession().createSQLQuery(
    "select * from library.tbl_book_loans l where cardNo = 4");

Hibernate 返回 Object[] 元素的列表。如果我尝试迭代此列表,我会得到空对象。我尝试了 here 中的几种不同方法和here .

有什么方法可以找出每个 Object[] 中对象的排列方式吗?

最佳答案

要将查询结果直接映射到实体对象,请使用addEntity(BookLoans.class);

   sessionFactory.getCurrentSession().createSQLQuery(
        "select * from library.tbl_book_loans l where cardNo = 4")
        .addEntity(BookLoans.class); 

请参阅文档(16.1.2.实体查询): http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querysql.html

但是,您从尝试中得到的 null 结果很奇怪。 Hibernate 应该为您提供对象数组列表,其中每个对象数组代表结果集中一行中的字段。检查查询是否实际返回某些内容。

关于java - Spring hibernate : SQLQuery involving mapped entities,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21654358/

相关文章:

java - Linux 上的 Spring 环境变量

Spring批量多线程: throttle-limit impact

java - 如何从矩形数组中删除随机矩形?

具有线性插值和分组依据的 SQL 查询

java - Google Maps API V2 如何获取位置?

java - Hibernate 分页错误接近限制 - SQL Server

sql - 如何自动运行具有基于文件的源的 SSIS 包

java - HibernateTemplate 可以和 EntityManager 共存吗?

java - 在 bean 中传递值时出错

java - 我无法删除文件,因为它似乎是 'open'