Hibernate не сохраняется в таблицу соединений - отношение ManyToOne и JoinTable - PullRequest
0 голосов
/ 24 мая 2018

Я использую SpringBoot 2.0.2 с Hibernate 5.2.17 и MariaDB 10.1

Клиент:

@Entity
public class Customer extends Company {

    @ManyToOne(fetch = FetchType.LAZY, cascade = ALL)
    @JoinTable(name = "company_services",
            joinColumns = @JoinColumn(name = "companyId", insertable = true, updatable = true),
            inverseJoinColumns = @JoinColumn(name = "serviceId", insertable = true, updatable = true))
    private Service service;

Сервис:

@Entity
public class Service {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

С журналом Hibernateвключено, я вижу это:

Hibernate: 
    /* insert com.example.company.Customer
        */ insert 
        into
            `
            companies` (
                ...
            ) 
        values
            (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: 
    select
        last_insert_id()
Hibernate: 
    /* insert com.example.company.Customer
        */ insert 
        into
            `
            company_service` (
                `serviceId`, `companyId`
            ) 
        values
            (?, ?)
20:43:53.524 TRACE [cid: none] [session: none] org.hibernate.type.descriptor.sql.BasicBinder -- binding parameter [1] as [BIGINT] - [3]
20:43:53.524 TRACE [cid: none] [session: none] org.hibernate.type.descriptor.sql.BasicBinder -- binding parameter [2] as [BIGINT] - [3]

Но когда я подтверждаю результат в таблице базы данных, все в порядке, но запись company_services не сохраняется.Это известная ошибка?Я что-то упустил?

1 Ответ

0 голосов
/ 24 мая 2018

Hibernate не использует соединительную таблицу для многих отношений.Он использует столбец соединения для отношения многие к одному.

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