当前位置: 首页 > news >正文

彩票网站建设方案联盟营销平台

彩票网站建设方案,联盟营销平台,网站制作怎么报价,做微视频的网站本文讨论了hibernate提供的不同命名策略#xff0c;以及命名策略从hibernate 4中的hibernate.ejb.naming_strategy到hibernate 5中的hibernate.implicit_naming_strategy和hibernate.physical_naming_strategy的转变。最后#xff0c;我们将研究一下在休眠和配置中实施自定义… 本文讨论了hibernate提供的不同命名策略以及命名策略从hibernate 4中的hibernate.ejb.naming_strategy到hibernate 5中的hibernate.implicit_naming_strategy和hibernate.physical_naming_strategy的转变。最后我们将研究一下在休眠和配置中实施自定义命名策略以与Spring Boot应用程序一起运行。 Hibernate 4命名策略 Hibernate使用这些策略将Java实体和属性名称与相应的关系数据库和列名称进行映射。 在休眠4中使用的命名策略是hibernate.ejb.naming_strategy。 该策略使用EJB3NamingStrategy 改良的 NamingStrategy DefaultComponentSafeNamingStrategy和DefaultNamingStrategy来映射名称。 EJB3NamingStrategy是使用的默认命名策略它提供驼峰字段和表名。在命名外键列时它使用undescore_作为分隔符。 例如如果您有一个名称为table1且表名分别为id和name的表那么在table2中外键列将被创建为table1_id并且此EJB3NamingStrategy实现了NamingStrategy接口。 Hibernate 5命名策略 Hibernate 5发布后由于NamingStrategy合同通常不够灵活以至于无法正确应用给定的命名“规则”因此hibernate.ejb.naming_strategy不再适用。 取而代之的是引入了两种新策略来提供命名策略的深度自定义它们是ImplicitNamingStrategy和PhysicalNamingStrategy。 要使用此策略有两个密钥需要使用implicit_naming_strategy和physical_naming_strategy。Hibernate5仅提供了PhysicalNamingStrategy的一种实现– PhysicalNamingStrategyStandardImpl但是提供了ImplicitNamingStrategy的几种实现。 当您在实体定义中未明确提供数据库名称和列名称时将使用ImplicitNamingStrategy因为PhysicalNamingStrategy可以用于显式定义实体名称和属性名称与数据库和列名称的映射规则。 隐式命名策略 当实体未明确命名其映射到的数据库表时或当特定属性未明确命名其映射到的数据库列时将使用ImplicitNamingStrategy。我们可以使用hibernate.implicit_naming_strategy配置设置指定要使用的ImplicitNamingStrategy来接受默认值是jpalegacy-hbmlegacy-jpa和component-path。 物理命名策略 PhysicalNamingStrategy的思想是定义自定义命名规则而不必通过显式名称将其硬编码到映射中。以下是PhysicalNamingStrategy的一种实现用于定义自定义表名和列名。 package com.devglan;import java.util.LinkedList; import java.util.List; import java.util.Locale;import org.hibernate.boot.model.naming.Identifier; import org.hibernate.boot.model.naming.PhysicalNamingStrategy; import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;import org.apache.commons.lang3.StringUtils;public class CustomPhysicalNamingStrategy implements PhysicalNamingStrategy {Overridepublic Identifier toPhysicalCatalogName(Identifier name, JdbcEnvironment jdbcEnvironment) {return name;}Overridepublic Identifier toPhysicalSchemaName(Identifier name, JdbcEnvironment jdbcEnvironment) {return name;}Overridepublic Identifier toPhysicalTableName(Identifier name, JdbcEnvironment jdbcEnvironment) {final List parts splitAndReplace( name.getText() );return jdbcEnvironment.getIdentifierHelper().toIdentifier(join( parts ),name.isQuoted());}Overridepublic Identifier toPhysicalSequenceName(Identifier name, JdbcEnvironment jdbcEnvironment) {return name;}Overridepublic Identifier toPhysicalColumnName(Identifier name, JdbcEnvironment jdbcEnvironment) {final List parts splitAndReplace( name.getText() );return jdbcEnvironment.getIdentifierHelper().toIdentifier(join( parts ),name.isQuoted());}private LinkedList splitAndReplace(String name) {LinkedList result new LinkedList();for ( String part : StringUtils.splitByCharacterTypeCamelCase( name ) ) {if ( part null || part.trim().isEmpty() ) {continue;}result.add( part.toUpperCase( Locale.ROOT ) );}return result;}private String join(List parts) {boolean firstPass true;String separator ;StringBuilder joined new StringBuilder();for ( String part : parts ) {joined.append( separator ).append( part );if ( firstPass ) {firstPass false;separator _;}}return joined.toString();} } 要在休眠状态下使用此自定义策略请执行以下配置。 jpaProperties.put(hibernate.physical_naming_strategy, com.devglan.config.CustomPhysicalNamingStrategy);Spring Boot中的休眠命名策略 正如我们所讨论的那样hibernate提供了两种不同的命名策略而Spring Boot使用SpringPhysicalNamingStrategy配置了物理命名策略其中所有的点都由下划线代替而驼峰的大小写由下划线代替并且所有表名均以小写形式生成。例如USERDETAILS实体映射到user_details表。 如果要使用上面实现的自定义命名策略可以在application.properties中进行以下配置。 spring.jpa.hibernate.naming.physical-strategycom.devglan.config.CustomPhysicalNamingStrategy);结论 在本文中我们了解了Spring Boot和Hibernate提供的不同命名策略以及实现我们自己的自定义命名策略的方法。 如果您有任何要添加或共享的内容请在下面的评论部分中共享。 翻译自: https://www.javacodegeeks.com/2018/03/different-hibernate-naming-strategy.html
http://www.sadfv.cn/news/328438/

相关文章:

  • 国外设计搜索网站北京微网站设计开发服务
  • 网站图标目录网站博客模板
  • 网站空间在哪买网站备案法律
  • 广东建设银行网站首页电子商务做网站骗钱怎么办
  • 微网站开发方案广东莞建建设工程有限公司
  • 无锡网站建设专家php能干嘛 wordpress
  • 网站不备案违法吗ps做图哪个网站好
  • 网站皮肤样板快速建设企业门户网站
  • 天津建设厅官方网站东莞市公司网站建设品牌
  • 网站开发策划创建地址怎么弄
  • 郑州网站建设公司哪家专业网络营销是什么含义
  • 网站开发后端待遇wordpress 删除自豪
  • 建设网站哪些好网站建设补贴是经信局的政策吗
  • 注册网站流程及费用护肤品网站建设分析
  • 网站设计就业压力展示网站系统架构设计
  • 网站商城建设6潮品服饰网站建设规划书
  • 辽阳建设网站WordPress链接加前缀
  • 百度微建站群辉nas 做网站
  • wordpress站内搜索次数成都租车公司网站
  • 网站怎么做百度优化高端网站建设公司名字
  • 怎样免费注册自己网站的域名网店的运营模式有哪些
  • 杭州大的做网站的公司公司网络搭建
  • 比较有名的个人网站关于建设门户网站的请示
  • 上海建筑 公司网站哈尔滨的互联网公司
  • 海外留学网站建设方案网站建设业务客户来源
  • excel如何做超链接网站权威发布的含义
  • 室内设计的网站盘锦网站建设价格
  • 自己做电视视频网站吗企业形象设计论文
  • 西安有哪些网站建设公司wordpress证优客
  • 有没有通信专业业余做兼职的网站给网站权限