#Hibernate
Hibernate是Java对象关系映射(ORM)框架。Hibernate负责实体映射和持久化操作,YashanDB JDBC驱动负责建立数据库连接并执行SQL语句。
本章节仅说明与YashanDB JDBC驱动直接相关的配置。有关Hibernate 5的完整对接步骤、实体映射示例和常见问题,请查阅YashanDB生态文档:Hibernate (opens new window)。Hibernate本身的配置和API用法请查阅Hibernate官方文档。
# 对接准备
对接前需要准备以下组件:
- 与应用JDK版本匹配的YashanDB JDBC驱动。
- Hibernate及应用框架所需的依赖。
- 与Hibernate版本匹配的YashanDB方言包。使用Hibernate 5时,需要按照生态文档获取
YashanDialect-for-hibernate5方言包。 - 可正常访问的YashanDB数据库和具有所需权限的数据库用户。
YashanDB JDBC驱动的获取和安装方法请参考安装JDBC驱动。
# 配置数据源和方言
以下示例展示Spring Boot应用连接YashanDB时需要配置的核心参数:
spring.datasource.url=jdbc:yasdb://192.168.1.2:1688/yasdb
spring.datasource.username=username
spring.datasource.password=passwd
spring.datasource.driver-class-name=com.yashandb.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.YasDialect
spring.jpa.properties.hibernate.hbm2ddl.auto=validate
spring.datasource.url用于指定YashanDB JDBC连接串,连接串格式和参数请参考JDBC连接串配置参数。org.hibernate.dialect.YasDialect由YashanDB方言包提供,方言包应与Hibernate版本匹配。
hibernate.hbm2ddl.auto控制Hibernate对数据库对象的处理方式。示例使用validate校验实体与表结构是否匹配。生产环境中应根据对象变更管理流程设置该参数,不建议由应用在启动时自动重建业务表。
# 使用说明
- 实体属性类型应与YashanDB列的数据类型匹配,数据类型映射请参考JDBC与Java数据类型映射。
- 使用序列生成主键时,
@SequenceGenerator配置的序列名称应与数据库中的序列名称保持一致。 - 数据库字符集为GBK且字段需要保存国家字符集数据时,可以按照生态文档使用Hibernate的
@Nationalized注解或适用的国家字符类型进行映射。 - CLOB、BLOB和NCLOB字段的处理方法请参考处理LOB类型。
Hibernate版本、方言类和注解行为可能随框架版本变化。升级Hibernate前,应先确认方言包的适配版本,并在测试环境中验证实体映射、主键生成和分页查询等功能。

