如何在Hibernate Native SQL Query中急切获取连接表集合?

时间:2011-05-24 10:02:30

标签: sql hibernate native

我有三个数据库表

  1. 客户
  2. 产品
  3. CustomerProductRelation
  4. 对应这些表,我有两个Hibernate POJO的

    1. 产品
    2. 客户
    3. 其中一个成员变量是joinTable:

      @JoinTable(name = "CustomerProductRelation", joinColumns = { @JoinColumn(name = "CUSTOMER_ID") }, inverseJoinColumns = { @JoinColumn(name = "PRODUCT_ID") })
      private List<Product> products;
      

      由于某种原因,我需要在Customer表上使用本机SQL查询,在这种情况下,我如何渴望在我的客户列表中获取产品?

      我正在做类似的事情:

      String queryString = "select c.*,cpr.product_id from Customer c, CustomerProductRelation cpr where c.customer_id = cpr.customer_id";
      List list = getSession().createSQLQuery(queryString)
                      .addEntity("c", Customer.class)
                      .addJoin("p", "c.products").list();
      

      这似乎不起作用。例外情况如下:

      java.lang.NullPointerException at org.hibernate.loader.DefaultEntityAliases.<init>(DefaultEntityAliases.java:37) at org.hibernate.loader.ColumnEntityAliases.<init>(ColumnEntityAliases.java:16) at org.hibernate.loader.custom.sql.SQLQueryReturnProcessor.generateCustomReturns(SQ‌​LQueryReturnProcessor.java:264)

      如果有人知道解决方法,请告诉我。

1 个答案:

答案 0 :(得分:1)

你看到的是this吗? (HHH-2225)