Как получить выборку из таблицы соединений в Hibernate Native SQL Query? - PullRequest
3 голосов
/ 24 мая 2011

У меня есть следующие три таблицы базы данных

  1. Клиент
  2. Продукт
  3. CustomerProductRelation

В соответствии с этими таблицами у меня есть двеHibernate POJO

  1. Product
  2. Customer

Одна из переменных-членов является joinTable:

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

По какой-то причинеМне нужно использовать собственный 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 Ответ

1 голос
/ 24 мая 2011

это , что вы видите?(HHH-2225)

...