JPA2 JoinColumns Имя JoinColumn не соблюдается. (Hibernate 3.6 и H2) - PullRequest
3 голосов
/ 20 октября 2011

Здесь приведен сокращенный фрагмент, без учета деталей IdClass. У меня возникла проблема с определением таблиц:

ClientPersonalityModel
(
 client_id int not null,
 personality_trait_id int not null,
 personality_type_id int not null,
 primary key (client_id, personality_trait_id, personality_type_id)
)

И класс:

@Entity
public class ClientPersonalityModel
{
    @Id 
    @ManyToOne
    @JoinColumn(name="client_id")
    protected ClientModel client;

    @Id
    @ManyToOne
    @JoinColumns({
        @JoinColumn(name="personality_trait_id",referencedColumnName="id"),
        @JoinColumn(name="personality_type_id",referencedColumnName="personality_type_id")
    })
    protected ClientPersonalityTraitModel trait;
}

Но постоянная структура пытается использовать столбцы CLIENT_ID, TRAIT_ID, TRAIT_PERSONALITY_TYPE_ID.

Почему имена @JoinColumn игнорируются?

Выдает исключение:

Начальный sessionFactory creationfailed.org.hibernate.MappingException: невозможно найти логическое имя столбца из физического имени personal_type_id в таблице client_personalities

java.lang.ExceptionInInitializerError Вызвано: org.hibernate.MappingException: невозможно найти логическое имя столбца из физического имени personal_type_id в таблице client_personalities

Этот случай рассматривается во многих примерах, но без переопределения имен столбцов.

Пример:

Листинг 10-12. Проект с зависимым идентификатором

@Entity
@IdClass(ProjectId.class)
public class Project {
    @Id private String name;
    @Id
    @ManyToOne
    private Department dept;
    // ...
}

из Pro JPA 2 (ISBN 978-1-4302-1956-9 / 978-1-4302-1957-6)

1 Ответ

0 голосов
/ 20 октября 2011

Возможно, попробуйте переключиться на @PrimaryKeyJoinColumns/@PrimaryKeyJoinColumn, соответственно.

Это помогло в этом случае , я полагаю, что это может быть той же самой причиной.

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