我是 spring 和 spring-boot 的新手,在学习 Spring CRUD 时,我浏览了不同的文章,我看到了这些行。“以及为什么 @Entity 注释是强制性的?......好吧,这就是 JPA 的设计方式。当你创建一个新实体时,你必须至少做两件事,用 @Entity 注释它,创建一个 id 字段并用 @Id 注释它其他都是可选的,例如表名派生自实体类名(因此@Table注解可以是可选的),表的列派生自实体变量(因此@Column注解可以是可选的),等等…… “所以我的问题是,如果我们不提供@Table注释和@Column注释,spring 将如何对表及其列名进行分叉。
1 回答
哔哔one
TA贡献1854条经验 获得超8个赞
当你在 Spring Boot 的上下文中问你的问题时。有两个选项决定命名策略:
spring.jpa.hibernate.naming.implicit-strategy
当我们没有在实体定义中明确提供表名和列名时,此选项用于确定名称
通常这默认为:ImplicitNamingStrategyJpaCompliantImpl
更多实施。
spring.jpa.hibernate.naming.physical-strategy
这是更可定制、可插入的策略合约,用于为数据库对象名称应用物理命名规则。
默认情况下,SpringPhysicalNamingStrategy
在所有点驼峰式外壳都被下划线替换的情况下使用 a。此外,表名以小写形式生成。
添加回答
举报
0/150
提交
取消