Spring-data-jdbc - 如何在多对多关系中设置模式
Spring-data-jdbc - How to set schema in many-to-many relationship
我在此处关注 spring.io 博客:https://spring.io/blog/2018/09/24/spring-data-jdbc-references-and-aggregates
并且在此处有一个带有 Book 和 Author 实体的示例 SpringBoot 应用程序: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
实体的注释。如果我删除 table 名称中的 demo
架构,那么 BookAndAuthorsTests
中的测试会顺利进行。
如何设置 schema
为 table Book
?
这是 1.0.x 版本中的错误。它在 1.1 中是固定的。
如果您将 spring-boot-starter-parent
升级到 2.2.0.M5
,您将获得包含修复程序的 spring-data-jdbc
版本 1.1.0.RC2
。
通过该修复 table @Table
注释中的名称以及使 NamingStrategy
return 模式的方法都有效。
注意:您的配置需要扩展 AbstractJdbcConfiguration
而不是 JdbcConfiguration
。
另一个注意事项:您的示例项目随后会阻塞,因为 AuthorRef
需要显式映射到 table BOOK_AUTHOR
。
一会我就留下PR
我在此处关注 spring.io 博客:https://spring.io/blog/2018/09/24/spring-data-jdbc-references-and-aggregates
并且在此处有一个带有 Book 和 Author 实体的示例 SpringBoot 应用程序: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
实体的注释。如果我删除 table 名称中的 demo
架构,那么 BookAndAuthorsTests
中的测试会顺利进行。
如何设置 schema
为 table Book
?
这是 1.0.x 版本中的错误。它在 1.1 中是固定的。
如果您将 spring-boot-starter-parent
升级到 2.2.0.M5
,您将获得包含修复程序的 spring-data-jdbc
版本 1.1.0.RC2
。
通过该修复 table @Table
注释中的名称以及使 NamingStrategy
return 模式的方法都有效。
注意:您的配置需要扩展 AbstractJdbcConfiguration
而不是 JdbcConfiguration
。
另一个注意事项:您的示例项目随后会阻塞,因为 AuthorRef
需要显式映射到 table BOOK_AUTHOR
。
一会我就留下PR