首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hibernate 5-命名策略-显式名称-忽略大写字母

Hibernate是一个开源的对象关系映射(ORM)框架,用于将Java对象映射到关系数据库中的数据表。它提供了一种方便的方式来处理数据库操作,使开发人员能够更专注于业务逻辑而不是底层数据库操作。

命名策略是Hibernate中用于生成数据库表和列名称的规则。在Hibernate中,有多种命名策略可供选择,包括显式名称和忽略大写字母。

显式名称命名策略是指在映射Java对象到数据库表时,使用开发人员指定的名称作为表和列的名称。这种命名策略允许开发人员完全控制数据库命名,可以根据自己的需求定义表和列的名称。

忽略大写字母命名策略是指在映射Java对象到数据库表时,忽略Java对象中属性的大写字母,将其转换为小写字母,并使用下划线分隔单词作为数据库表和列的名称。这种命名策略可以简化数据库命名,使其更符合传统的数据库命名规范。

Hibernate的命名策略可以通过配置文件或注解来指定。在配置文件中,可以使用<property>元素来设置命名策略,例如:

代码语言:txt
复制
<property name="hibernate.physical_naming_strategy">com.example.ExplicitNamingStrategy</property>

在注解中,可以使用@PhysicalNamingStrategy注解来指定命名策略,例如:

代码语言:txt
复制
@Entity
@Table(name = "my_table")
@PhysicalNamingStrategy(name = "com.example.ExplicitNamingStrategy")
public class MyEntity {
    // ...
}

推荐的腾讯云相关产品和产品介绍链接地址:

  1. 云数据库MySQL:腾讯云提供的高性能、可扩展的云数据库服务,支持MySQL数据库。详情请参考:云数据库MySQL
  2. 云服务器(CVM):腾讯云提供的弹性计算服务,可快速部署和扩展应用程序。详情请参考:云服务器(CVM)
  3. 云存储(COS):腾讯云提供的安全、稳定、低成本的对象存储服务,适用于存储和处理各种类型的数据。详情请参考:云存储(COS)
  4. 人工智能平台(AI Lab):腾讯云提供的一站式人工智能开发平台,包括图像识别、语音识别、自然语言处理等功能。详情请参考:人工智能平台(AI Lab)
  5. 物联网套件(IoT Hub):腾讯云提供的物联网云服务平台,支持设备接入、数据存储和分析、远程控制等功能。详情请参考:物联网套件(IoT Hub)
  6. 区块链服务(BCS):腾讯云提供的一站式区块链服务平台,支持快速搭建和管理区块链网络。详情请参考:区块链服务(BCS)

以上是腾讯云提供的一些与Hibernate相关的产品,可以根据具体需求选择适合的产品来支持和扩展应用程序。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

spring.jpa.hibernate 配置和源码解析

create-drop 先删除,SessionFactory启动时创建,SessionFactory关闭时再删除 validate 仅校验 update 必要时更新 truncate 清空数据 隐命名策略...如果没有通过@Table或者@Column等注解指定表名、列名,将通过隐命名策略生成对应名称 配置路径: spring.jpa.hibernate.naming.implicit-strategy...匹配JPA1.0标准的实现 物理命名策略指定或隐命名策略转换得到的逻辑名称转换为数据库实际使用的物理名称 配置路径:spring.jpa.hibernate.naming.physical-strategy...") public class HibernateProperties { // 命名策略配置 private final Naming naming = new Naming(); // DDL...默认为null return defaultDdlAuto.get(); } // 命名策略配置类 public static class Naming { // 应用命名策略(没有配置属性则填充默认值

17800

hibernate5新特性展示

摘要: 在hibernate5中,有了一些新的变动: 新引导 API Spatial/GIS 支持 Java 8 支持 扩展 AUTO id 生成支持 命名策略分离 属性转换器支持 更好的 在hibernate5...中,有了一些新的变动: 新引导 API Spatial/GIS 支持 Java 8 支持 扩展 AUTO id 生成支持 命名策略分离 属性转换器支持 更好的 “bulk id table” 支持 事务管理...属性 命名策略分离 为了支持更好地接口设计,命名策略被分离成两个主要部分: 1. org.hibernate.boot.model.naming.ImplicitNamingStrategy:使用此属性当...我们使用的表或列没有明确指定一个使用的名称 2. org.hibernate.boot.model.naming.PhysicalNamingStrategy:用于转换“逻辑名称”(隐)的表或列成一个物理名称...事务上下文”根据后端事务策略给定的会话。

1.4K40

hibernate 检索方式

HQL 的參数绑定由两种形式: 按參数名字绑定: 在 HQL 查询语句中定义命名參数, 命名參数以 “:” 开头. 按參数位置绑定: 在 HQL 查询语句中用 “?...在默认情况下, Query 和 Criteria 接口检索出查询结果中全部的对象 在映射文件里定义命名查询语句 Hibernate 同意在映射文件里定义字符串形式的查询语句....假设在 HQL 中没有指定检索策略, 将使用映射文件配置的检索策略....HQL 会忽略映射文件里设置的迫切左外连接检索策略, 假设希望 HQL 採用迫切左外连接策略, 就必须在 HQL 查询语句中的指定它 若在 HQL 代码中指定了检索策略, 就会覆盖映射文件里配置的检索策略...创建 Query 对象 //基于命名參数.

96610

Spring Data JPA系列3:JPA项目中核心场景与进阶用法介绍

默认的命名策略,兼容JPA2.0规范 ImplicitNamingStrategyLegacyHbmImpl 兼容老版本Hibernate命名规范 ImplicitNamingStrategyComponentPathImpl...DB表column名称,遇大写字母时转为分隔符"_"命名格式,比如java类中userName字段,映射到DB表column名称叫user_name physical-strategy与implicit-strategy...SpringData JPA只是对JPA规范的二次封装,其底层使用的是Hibernate,所以此处涉及到Hibernate提供的一些处理策略。...Hibernate将对象模型映射到关系数据库分为两个步骤: 从对象模型中确定逻辑名称。逻辑名可以由用户指定(使用@Column或@Table),也可以隐指定。...将逻辑名称映射到物理名称,也就是数据库中使用的名称。 这里,implicit-strategy用于第一步隐指定逻辑名称,而physical-strategy则用于第二步中逻辑名称到物理名称的映射。

1.3K20

这些规范你需要上点心

Python是一个极简优雅的语言,大部分初学者,尤其从事数据科学但初学者,在初学Python时,一般会从Python基本语法、基本数据类型学起,但常常会忽略一些基本规则,Python变量命名规则就是其中一个...大驼峰命名法(upper camel case) 每一个单字的首字母都采用大写字母,例如:FirstName、LastName、CamelCase,也被称为Pascal命名法(英语:Pascal Case...以两个下划线开头但结尾没有下划线的变量名(__x)是类的成员变量, 交互模式下,变量名 _ 用于保存最后表达式的结果 命名约定 避免使用的名称 切勿将字符 "l"(小写字母el),"O"(大写字母oh...)或"I"(大写字母eye)用作单个字符变量名称。...采用标准的命名约定,做出一个全局决策而不是多个本地决策。 变量/函数名称:用小写字母表示,中间用下划线分割。 常量:用大写字母。 Class类:首字母大写,其余小写。

91240

干货|一文读懂 Spring Data Jpa!

@Column注解,去配置字段的名称,长度,是否为空等等。...transaction-type:指定 JPA 的事务处理策略。RESOURCE_LOCAL:默认值,数据库级别的事务,只能针对一种数据库,不支持分布事务。...如果需要支持分布事务,使用JTA:transaction-type="JTA" class节点表示的列出实体类 properties中的配置分为两部分:数据库连接信息以及Hibernate信息 5...假设查询实体为Doc: 先判断 userDepUuid (根据 POJO 规范,首字母变为小写)是否为查询实体的一个属性,如果是,则表示根据该属性进行查询;如果没有该属性,继续第二步; 从右往左截取第一个大写字母开头的字符串...可以明确在属性之间加上 "" 以表达意图,比如 "findByUserDepUuid()" 或者 "findByUserDep_uuid()" 还有一些特殊的参数:例如分页或排序的参数: Page<

2.8K20

Spring Boot2 系列教程(二十三)理解 Spring Data Jpa

,可以使用 @Column 注解,去配置字段的名称,长度,是否为空等等。...transaction-type:指定 JPA 的事务处理策略。RESOURCE_LOCAL:默认值,数据库级别的事务,只能针对一种数据库,不支持分布事务。...如果需要支持分布事务,使用JTA:transaction-type="JTA" class 节点表示的列出实体类 properties 中的配置分为两部分:数据库连接信息以及Hibernate信息...假设查询实体为Doc: 先判断 userDepUuid (根据 POJO 规范,首字母变为小写)是否为查询实体的一个属性,如果是,则表示根据该属性进行查询;如果没有该属性,继续第二步; 从右往左截取第一个大写字母开头的字符串...可以明确在属性之间加上 "_" 以表达意图,比如 "findByUser_DepUuid()" 或者 "findByUserDep_uuid()" 还有一些特殊的参数:例如分页或排序的参数: Page

2K10

一次扫盲VO、DTO、DO和PO区别、用法、概念~

DO与PO的区别 DO和PO在绝大部分情况下是一一对应的,PO是只含有get/set方法的POJO,但某些场景还是能反映出两者在概念上存在本质的区别: DO在某些场景下不需要进行的持久化,例如利用策略模式设计的商品折扣策略...虽然如此,但有些问题我们还必须注意: 对于DO中不需要持久化的属性,需要通过ORM的声明,如:在JPA中,可以利用@Transient声明。...JavaBean的规范反射出set方法来为每个属性设值,如果不显声明set方法,或把set方法设置为private,都会导致Hibernate无法初始化DO,从而出现运行时异常,可行的做法是把属性的set...虽然如此,但有些问题我们还必须注意: 对于DO中不需要持久化的属性,需要通过ORM的声明,如:在JPA中,可以利用@Transient声明。...JavaBean的规范反射出set方法来为每个属性设值,如果不显声明set方法,或把set方法设置为private,都会导致Hibernate无法初始化DO,从而出现运行时异常,可行的做法是把属性的set

7.2K30

Java创建Annotation

包含默认值空字符串允许省略该值,value如果没有指定值,则导致值为空字符串。例如,如果用户使用表单声明上述注解@JsonField,则该value参数设置为空字符串。...对于具有多个参数的注解,需要指定每个参数的名称来区分参数(除非仅提供一个参数,在这种情况下,如果未提供名称,则参数将映射到value参数)。...如果value参数的值是空字符串,我们知道没有提供字段名称(因为这是value参数的默认值),否则,提供了一个空字符串。...(或提供的字段名称)和值,以及(3)将所记录的字段名称和值的键值对转换成JSON字符串。...如果是,我们确定字段的名称(通过@JsonField注解中提供的名称或默认名称),并在我们先前构造的map中记录名称和字段值。处理完所有字段后,我们将字段名称映射转换为JSON字符串。

1.5K20

ORM和 Spring Data Jpa

@Column注解,去配置字段的名称,长度,是否为空等等。...transaction-type:指定 JPA 的事务处理策略。RESOURCE_LOCAL:默认值,数据库级别的事务,只能针对一种数据库,不支持分布事务。...如果需要支持分布事务,使用JTA:transaction-type="JTA" class节点表示的列出实体类 properties中的配置分为两部分:数据库连接信息以及Hibernate...假设查询实体为Doc: 先判断 userDepUuid (根据 POJO 规范,首字母变为小写)是否为查询实体的一个属性,如果是,则表示根据该属性进行查询;如果没有该属性,继续第二步; 从右往左截取第一个大写字母开头的字符串...可以明确在属性之间加上 "" 以表达意图,比如 "findByUserDepUuid()" 或者 "findByUserDep_uuid()" 还有一些特殊的参数:例如分页或排序的参数:

3.3K30

POPOJOBODTOVO的概念与区别

甚至更多),因为这样做并不见得很明智,我们完全可以设计一个完全兼容的DTO,在服务层接收数据的时候,不该由展示层设置的属性(如订单的总价应该由其单价、数量、折扣等决定),无论展示层是否设置,服务层都一概忽略...PO 2.2.1 DO与PO的区别 DO和PO在绝大部分情况下是一一对应的,PO是只含有get/set方法的POJO,但某些场景还是能反映出两者在概念上存在本质的区别: DO在某些场景下不需要进行的持久化...,例如利用策略模式设计的商品折扣策略,会衍生出折扣策略的接口和不同折扣策略实现类,这些折扣策略实现类可以算是DO,但它们只驻留在静态内存,不需要持久化到持久层,因此,这类DO是不存在对应的PO的。...虽然如此,但有些问题我们还必须注意: 对于DO中不需要持久化的属性,需要通过ORM的声明,如:在JPA中,可以利用@Transient声明。...JavaBean的规范反射出set方法来为每个属性设值,如果不显声明set方法,或把set方法设置为private,都会导致Hibernate无法初始化DO,从而出现运行时异常,可行的做法是把属性的set

74130

SpringDataJPA 系列之快速入门

hibernate 是一套成熟的 ORM 框架,而且 Hibernate 实现了 JPA 规范,所以也可以称 hibernate 为 JPA 的一种实现方式,我们使用 JPA 的 API 编程,意味着站在更高的角度上看待问题...  顾名思义,方法命名规则查询就是根据方法的名字,就能创建查询。...只需要按照 SpringDataJPA 提供的方法命名规则定义方法的名称,就可以完成查询工作。SpringDataJPA 在程序执行的时候会根据方法名称进行解析,并自动生成查询语句进行查询。...,假设查询实体为 Student,先判断 ClassUserAge(根据 POJO 规范,首字母变为小写)是否为查询实体的一个属性,如果是,则表示根据该属性进行查询;如果没有该属性则从右往左截取第一个大写字母开头的字符串...可以明确在属性之间加上 _ 以表达意图,比如 findByClass_UserAge() 或者 findByClassUser_Age。

1.6K30

数据库PostrageSQL-排序规则支持

一个表达式的排序规则派生可以是或隐。该区别会影响多个不同的排序规则出现在同一个表达式中时如何组合它们。当使用一个COLLATE子句时,将发生排序规则派生。所有其他排序规则派生都是隐的。...当多个排序规则需要被组合时(例如在一个函数调用中),将使用下面的规则: 如果任何一个输入表达式具有一个排序规则派生,则在输入表达式之间的所有派生的排序规则必须相同,否则将产生一个错误。...如果任何一个派生的排序规则存在,它就是排序规则组合的结果。 否则,所有输入表达式必须具有相同的隐排序规则派生或默认排序规则。如果任何一个非默认排序规则存在,它就是排序规则组合的结果。...但是在 SELECT a < ('foo' COLLATE "fr_FR") FROM test1; 中,比较被使用fr_FR规则执行,因为排序规则派生重载了隐排序规则。...ICU 排序规则 对于ICU,枚举所有可能的语言环境名称并不明智。 ICU为语言环境使用特定的命名系统,但命名语言环境的方法多于实际上不同的语言环境。

1.5K20

缓存之EHCache

多种缓存策略 4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题 5. 缓存数据会在虚拟机重启的过程中写入磁盘 6. 可以通过RMI、可插入API等方式进行分布缓存 7....– 用户主目录             user.dir      – 用户当前工作目录             java.io.tmpdir – 默认临时文件路径 元素:设定缓存的默认数据过期策略...元素:设定具体的命名缓存的数据过期策略。 元素的属性  name:缓存名称。通常为缓存对象的类名(非严格标准)。 ...eternal:如果为true,表示对象永远不会过期,此时会忽略timeToIdleSeconds和timeToLiveSeconds属性,默认为false;  timeToIdleSeconds: ...memoryStoreEvictionPolicy:缓存对象清除策略

51620

Caché 变量大全 $ZNSPACE 变量

Caché 变量大全 $ZNSPACE 变量 包含当前命名空间名称。 大纲 $ZNSPACE 描述 $ZNSPACE包含当前命名空间的名称。通过设置$ZNSPACE,可以更改当前名称空间。...命名空间名称不区分大小写。InterSystems IRIS始终以全大写字母显示名称空间名称,以全小写字母显示隐含的名称空间名称。...要获取指定进程的命名空间名称,请使用%SYS.ProcessQuery类的方法,如下例所示: DHC-APP>WRITE ##CLASS(%SYS.ProcessQuery)....可以指定名称空间(“NAMESPACE”)或隐式名称空间(“^SYSTEM^DIR”或“^^DIR”)。 如果指定当前命名空间,则SET $ZNSPACE不执行任何操作,也不返回任何错误。...示例 在以下示例中,如果当前命名空间不是USER,则SET $ZNSPACE命令会将当前命名空间更改为USER。请注意,由于if测试,命名空间必须全部用大写字母指定。

27320

hibernate 二级缓存「建议收藏」

: 设置缓存的默认数据过期策略 设定具体的命名缓存的数据过期策略。...每个命名缓存代表一个缓存区域 缓存区域(region):一个具有名称的缓存块,可以给每一个缓存块设置不同的缓存策略。如果没有设置任何的缓存区域,则所有被缓存的对象,都将使用默认的缓存策略。...即: Hibernate在不同的缓存区域保存不同的类/集合。 对于类而言,区域的名称是类名。...-- 设定具体的命名缓存的数据过期策略。每个命名缓存代表一个缓存区域 缓存区域(region):一个具有名称的缓存块,可以给每一个缓存块设置不同的缓存策略。...对于类而言,区域的名称是类名。如:com.atguigu.domain.Customer 对于集合而言,区域的名称是类名加属性名。

99420
领券