Исключение в столбце с использованием addJoin в Hibernate Native SQL - PullRequest
0 голосов
/ 20 мая 2018

Я использую Hibernate 5.2.8, у меня есть таблицы Departamentos и Empleados. Departamentos.java

private int deptNo;
private String dnombre;
private String loc;
private Set<Empleados> empleadoses = new HashSet<Empleados>(0);

Empleados.java

private int empNo;
private Departamentos departamentos;
......

Отдел HBM

<hibernate-mapping auto-import="true" default-access="property" default-cascade="none" default-lazy="true">
<class catalog="hibernate" dynamic-insert="false" dynamic-update="false" mutable="true" name="jdbc.Departamentos" optimistic-lock="version" polymorphism="implicit" select-before-update="false" table="departamentos">
    <id name="deptNo" type="int">
        <column name="dept_no"/>
        <generator class="assigned"/>
    </id>
   .........
    <set embed-xml="true" fetch="select" inverse="true" lazy="true" mutable="true" name="empleadoses" optimistic-lock="true" sort="unsorted" table="empleados">
        <key on-delete="noaction">
            <column name="dept_no" not-null="true"/>
        </key>

        <one-to-many class="jdbc.Empleados" embed-xml="true" not-found="exception"/>
    </set>
</class>

Empleados HBM

<hibernate-mapping auto-import="true" default-access="property" default-cascade="none" default-lazy="true">
<class catalog="hibernate" dynamic-insert="false" dynamic-update="false" mutable="true" name="jdbc.Empleados" optimistic-lock="version" polymorphism="implicit" select-before-update="false" table="empleados">
    <id name="empNo" type="int">
        <column name="emp_no"/>
        <generator class="assigned"/>
    </id>
    <many-to-one class="jdbc.Departamentos" embed-xml="true" fetch="select" insert="true" name="departamentos" not-found="exception" optimistic-lock="true" unique="false" update="true">
        <column name="dept_no" not-null="true"/>
    </many-to-one>
    ......

Это запрос:

Query q = session.createSQLQuery("SELECT e.emp_no,e.apellido,e.oficio, d.dnombre FROM empleados e inner join departamentos d on e.dept_no=d.dept_no "
            + "where d.dnombre LIKE '"+dep+"'")
             .addEntity("e",jdbc.Empleados.class)
             //.addEntity("d",jdbc.Departamentos.class)
             .addJoin("d","e.departamentos");

Исключение:

ОШИБКА: столбец 'dept_no' не найден.Исключение в потоке "main" org.hibernate.exception.SQLGrammarException: не удалось выполнить запрос

Как решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...