Hibernate MappingException на связанной вторичной таблице - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть ситуация, когда я хотел бы сослаться на имя и фамилию пользователя, который обновил объект задачи.Это должно быть прямое извлечение, но Hibernate не связывает ассоциации, как я ожидаю.Вот определения объектов:

Task Object:
@Entity
@Table(name = "TASKS")
public class TaskBean {
    ...
    @ManyToOne(targetEntity = UserBean.class, optional=true)
    @JoinColumn(name="MODIFIED_BY", referencedColumnName="EMPLOYEE_ID")
    public User getUser()
    ...



User Object:
@Entity
@Table(name = "USER_")
@SecondaryTable(name="LOCAL_USER", 
        pkJoinColumns={
            @PrimaryKeyJoinColumn(name="PORTAL_USER_ID", referencedColumnName="USERID")})

public class UserBean {
    private BigDecimal userId; // USERID
    private String firstName; // FIRSTNAME
    private String lastName; // LASTNAME
    private String employeeId; // EMPLOYEE_ID

 ....

    @Column(name="EMPLOYEE_ID", table="LOCAL_USER", updatable=false, insertable=false)
    public String getEmployeeId() {
         return employeeId;
    }

Проблема в определении @ManyToOne в TaskBean.Когда я пытаюсь запустить модульный тест для TaskBeans, я получаю следующее исключение:

org.hibernate.MappingException: невозможно найти столбец с логическим именем: EMPLOYEE_ID в org.hibernate.mapping.Table (USER_) и связанных с ним супертаблиц и вторичных таблиц

Это не имеет смысла для меня, поскольку я четко определил поле EMPLOYEE_ID в UserBean.Разве это невозможно сделать, так как это поле происходит из вторичной таблицы?Это сообщение об ошибке звучит так, как будто это разумная вещь.

Есть предложения?

1 Ответ

0 голосов
/ 06 января 2015

как описано для ошибки Hibernate https://hibernate.atlassian.net/browse/HHH-7713

Вы можете применить обходной путь, используя выделенные акценты для идентификации вашего ссылочного имени_колонки `

SecondaryTable(name="LOCAL_USER", 
    pkJoinColumns={
        @PrimaryKeyJoinColumn(name="PORTAL_USER_ID", referencedColumnName="`USERID`")})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...