为了账号安全,请及时绑定邮箱和手机立即绑定

为什么@Table注解在通过spring的CRUD操作中是可选的

为什么@Table注解在通过spring的CRUD操作中是可选的

阿波罗的战车 2023-01-05 16:58:10

我是 spring 和 spring-boot 的新手,在学习 Spring CRUD 时,我浏览了不同的文章,我看到了这些行。

“以及为什么 @Entity 注释是强制性的?......好吧,这就是 JPA 的设计方式。当你创建一个新实体时,你必须至少做两件事,用 @Entity 注释它,创建一个 id 字段并用 @Id 注释它其他都是可选的,例如表名派生自实体类名(因此@Table注解可以是可选的),表的列派生自实体变量(因此@Column注解可以是可选的),等等…… “

所以我的问题是,如果我们不提供@Table注释和@Column注释,spring 将如何对表及其列名进行分叉。


查看完整描述

1 回答

?
哔哔one

TA贡献1611条经验 获得超7个赞

当你在 Spring Boot 的上下文中问你的问题时。有两个选项决定命名策略:

spring.jpa.hibernate.naming.implicit-strategy

当我们没有在实体定义中明确提供表名和列名时,此选项用于确定名称

通常这默认为:ImplicitNamingStrategyJpaCompliantImpl

更多实施

spring.jpa.hibernate.naming.physical-strategy

这是更可定制、可插入的策略合约,用于为数据库对象名称应用物理命名规则。

默认情况下,SpringPhysicalNamingStrategy在所有点驼峰式外壳都被下划线替换的情况下使用 a。此外,表名以小写形式生成。


查看完整回答
反对 回复 2023-01-05

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信