2015-05-09 2 views
1

NetBeans Мои инструменты:Ассоциативная таблица не отображается - Hibernate +

  • Netbeans 8.x
  • Hibernate плагин
  • PHP мой администратора

enter image description here

запрос HQL:

SELECT a.applicaitonName 
FROM UserApp ua 
    LEFT JOIN Application a On ua.applicationId= a.applicationId 
WHERE 
    ua.userId = 1 

Ошибка:

org.hibernate.hql.internal.ast.QuerySyntaxException: Userapp is not mapped [SELECT a.applicaitonName 
FROM Userapp ua 
    LEFT JOIN Application a On ua.applicationId= a.applicationId 
WHERE 
    ua.userId = 1] 
    at org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:96) 
    at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:120) 

Как я продолжил:

  • Я создал hibernate.cfg.xml
  • Я создал hibernate.reveng.xml
  • Я создал файлы отображения библиотеки Hibernate и Pojors из базы данных

Когда я создаю Hiber nate Mapping Files и Pojors из базы данных, он создал 2 объекта новостей: Application и User. Но не Userapp ...

Должен ли я создать его вручную?

enter image description here

Здесь hibernate.reveng.xml (что-то странное, UserApp, пишет в Blanck, а не серый, как пользователь и применение:

enter image description here

<hibernate-reverse-engineering> 
    <schema-selection match-catalog="allin"/> 
    <table-filter match-name="user"/> 
    <table-filter match-name="application"/> 
    <table-filter match-name="userapp"/> 
</hibernate-reverse-engineering> 

Спасибо за вашу помощь !!

ответ

0

Такая таблица сопоставления обычно не отображается явно Hibernate, но только неявно с помощью ManyTo Много картирование. Поэтому ваше HQL заявление должно выглядеть примерно так

SELECT a.applicationName 
FROM User u left join u.applications as a 
WHERE u.userId = 1 

Я не могу сказать, что правильное название свойства для приложений ... Вы бы должны быть в состоянии смотреть, что в исходном коде.

Как сделать этот вид соединений в HQL описан здесь: https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-joins

Смежные вопросы