Spring-data-jdbc - как установить схему в отношении многие ко многим - PullRequest
0 голосов
/ 28 сентября 2019

Я просматриваю блог spring.io здесь: https://spring.io/blog/2018/09/24/spring-data-jdbc-references-and-aggregates и у меня есть образец приложения SpringBoot с сущностями Book и Author здесь: https://github.com/b-sridhar/spring-data-jdbc-example.

Я получаю следующую ошибку: No value supplied for the SQL parameter 'demobook': No value registered for key 'demobook'

И во время отладки заметил, что выполняется SQL-запрос: INSERT INTO demo.book_author (author, demo.book) VALUES (:author, :demobook), который должен был быть INSERT INTO demo.book_author (author, book) VALUES (:author, :book).Это происходит потому, что у меня есть @Table("demo.book") в качестве аннотации для сущности Book.Если я удаляю схему demo в названии таблицы, то тесты в BookAndAuthorsTests проходят нормально.

Как установить schema для таблицы Book?

1 Ответ

1 голос
/ 28 сентября 2019

Это ошибка в версии 1.0.x.Это исправлено для 1.1.

Если вы обновите spring-boot-starter-parent до 2.2.0.M5, вы получите spring-data-jdbc версию 1.1.0.RC2, содержащую исправление.

С этими именами таблиц исправлений в аннотациях @Tableработайте так же, как и подход NamingStrategy, возвращающий схему.

Примечание: тогда ваша конфигурация должна расширяться AbstractJdbcConfiguration вместо JdbcConfiguration.

Еще одно примечание:Затем ваш пример проекта задыхается, потому что AuthorRef требуется явное отображение в таблицу BOOK_AUTHOR.Я оставлю пиар через секунду.

...