Tho*_*ang 7 spring-data spring-data-jdbc
我如何调整 Spring Data JDBCNamingStrategy使其行为像 Hibernate\xc2\xb4s PhysicalNamingStrategy?
\n我有以下实体:
/**\n * Campus domain model class.\n * Handles information about campus.\n *\n * @author thomas.lang@th-deg.de\n */\n@Data\n@AllArgsConstructor(access = AccessLevel.PRIVATE, onConstructor = @__(@PersistenceConstructor))\npublic class Campus {\n\n private final @Id\n @Wither\n long campusId;\n\n @NotNull\n @Size(min = 3)\n private String campusName;\n\n /**\n * Creates a new campus.\n *\n * @param campusName\n */\n public Campus(@NonNull String campusName) {\n this.campusId = 0;\n Assert.hasLength(campusName, "A valid value has to be provided for Campus!");\n this.campusName = campusName;\n }\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\n当我希望 JDBC 持久化测试记录时,它会生成以下 sql:
\n[INSERT INTO campus (campus_name) VALUES (?)]
我现有的数据库有一列名为campusname
我在这里阅读了文档https://docs.spring.io/spring-data/jdbc/docs/1.0.2.RELEASE/reference/html/#jdbc.entity-persistence.naming-strategy我可以调整命名策略,但我不\xc2\xb4t 知道如何:)
\n\n感谢您的帮助!\n亲切的问候!\n托马斯
\n\n解决方案:
\n\n/**\n * Naming strategy for naming entity columns\n * @see <a href="/sf/ask/3733427981/#53335830">How to implement {@link NamingStrategy}</a>\n *\n * @return PhysicalNamingStrategy\n */\n @Bean\n public NamingStrategy namingStrategy() {\n return new NamingStrategy() {\n @Override\n public String getColumnName(RelationalPersistentProperty property) {\n Assert.notNull(property, "Property must not be null.");\n return ParsingUtils.reconcatenateCamelCase(property.getName(), "");\n }\n };\n }\nRun Code Online (Sandbox Code Playgroud)\n
在您的应用程序上下文中创建一个类型的 bean NamingStrategy,并根据您的喜好实现其方法。
您需要重写的方法是getColumnName(RelationalPersistentProperty)
| 归档时间: |
|
| 查看次数: |
3023 次 |
| 最近记录: |