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

做平面设计都关注哪些网站中国菲律宾大使馆电话号码

做平面设计都关注哪些网站,中国菲律宾大使馆电话号码,上海建设厅网站首页,重庆怎么做平台软件JPA标识符生成器 JPA定义了以下标识符策略#xff1a; 战略 描述 汽车 持久性提供程序选择基础数据库支持的最合适的标识符策略 身份 标识符由数据库IDENTITY列分配 序列 持久性提供程序使用数据库序列来生成标识符 表 持久性提供程序使用单独的数据库表来模拟序列对… JPA标识符生成器 JPA定义了以下标识符策略 战略 描述 汽车 持久性提供程序选择基础数据库支持的最合适的标识符策略 身份 标识符由数据库IDENTITY列分配 序列 持久性提供程序使用数据库序列来生成标识符 表 持久性提供程序使用单独的数据库表来模拟序列对象 在我以前的文章中我举例说明了所有这些替代标识符策略的优缺点。 标识符优化器 尽管没有太多应用程序侧IDENTITY生成器优化除了配置数据库标识预分配外序列标识符在这方面提供了更大的灵活性。 最常见的优化策略之一是基于高/低分配算法 。 为此Hibernate提供了 发电机 描述 SequenceHiLoGenerator 它使用数据库序列生成hi值而低值根据hi / lo算法递增 TableHiLoGenerator 数据库表用于生成hi值。 不推荐使用此生成器而推荐使用MultipleHiLoPerTableGenerator增强的TableGenerator或SequenceStyleGenerator。 多重HiLo PerTableGenerator 它是一个高/低表生成器即使对于多个标识符序列也可以使用单个数据库表。 SequenceStyleGenerator 它是先前序列生成器的增强版本。 如果基础数据库支持则使用序列。 如果当前数据库不支持序列它将切换为使用表来生成序列值。 当以前的生成器具有预定义的优化算法时可以使用优化器策略配置增强型生成器 none 没有应用优化策略因此从数据库中获取每个标识符 hi / lo 它使用原始的hi / lo算法。 这种策略使其他系统难以共享相同的标识符序列从而要求其他系统实现相同的标识符生成逻辑。 pooled 此优化器使用高/低优化策略但不保存当前的hi值而是存储当前范围的上边界或下边界– hibernate.id.optimizer.pooled.prefer_lo 。 池化是默认的优化器策略。 表格生成器 与MultipleHiLoPerTableGenerator一样它可以将一个表用于多个标识符生成器​​同时提供可配置的优化器策略。 池化是默认的优化器策略。 JPA到Hibernate标识符映射 拥有如此丰富的生成器我们不禁要问哪个被用作默认的JPA生成器。 尽管JPA规范并不意味着任何特定的优化但Hibernate宁愿选择一种优化的生成器而不是总是为每个新标识符访问数据库的优化生成器。 JPA 我们将定义一个配置有SEQUENCE JPA标识符生成器的实体。 单元测试将保留五个这样的实体。 Entity(name sequenceIdentifier) public static class SequenceIdentifier {IdGeneratedValue(generator sequence, strategyGenerationType.SEQUENCE)SequenceGenerator(name sequence, allocationSize 10)private Long id; }Test public void testSequenceIdentifierGenerator() {LOGGER.debug(testSequenceIdentifierGenerator);doInTransaction(new TransactionCallableVoid() {Overridepublic Void execute(Session session) {for (int i 0; i 5; i) {session.persist(new SequenceIdentifier());}session.flush();return null;}}); } 运行此测试我们将提供以下输出 Query:{[call next value for hibernate_sequence][]} Generated identifier: 10, using strategy: org.hibernate.id.SequenceHiLoGenerator Generated identifier: 11, using strategy: org.hibernate.id.SequenceHiLoGenerator Generated identifier: 12, using strategy: org.hibernate.id.SequenceHiLoGenerator Generated identifier: 13, using strategy: org.hibernate.id.SequenceHiLoGenerator Generated identifier: 14, using strategy: org.hibernate.id.SequenceHiLoGenerator Query:{[insert into sequenceIdentifier (id) values (?)][10]} Query:{[insert into sequenceIdentifier (id) values (?)][11]} Query:{[insert into sequenceIdentifier (id) values (?)][12]} Query:{[insert into sequenceIdentifier (id) values (?)][13]} Query:{[insert into sequenceIdentifier (id) values (?)][14]} Hibernate选择使用遗留的SequenceHiLoGenerator来向后兼容发行增强型生成器之前开发的所有那些应用程序。 将旧版应用程序迁移到新生成器上并非易事因此增强的生成器是新应用程序的更好替代方案。 默认情况下Hibernate更喜欢使用“ seqhilo”生成器这不是一个直观的假设因为许多人可能期望使用原始的“ sequence”生成器总是为每个新的标识符值调用数据库序列。 为了启用增强的生成器我们需要设置以下Hibernate属性 properties.put(hibernate.id.new_generator_mappings, true); 给我们以下输出 Query:{[call next value for hibernate_sequence][]} Query:{[call next value for hibernate_sequence][]} Generated identifier: 1, using strategy: org.hibernate.id.enhanced.SequenceStyleGenerator Generated identifier: 2, using strategy: org.hibernate.id.enhanced.SequenceStyleGenerator Generated identifier: 3, using strategy: org.hibernate.id.enhanced.SequenceStyleGenerator Generated identifier: 4, using strategy: org.hibernate.id.enhanced.SequenceStyleGenerator Generated identifier: 5, using strategy: org.hibernate.id.enhanced.SequenceStyleGenerator Query:{[insert into sequenceIdentifier (id) values (?)][1]} Query:{[insert into sequenceIdentifier (id) values (?)][2]} Query:{[insert into sequenceIdentifier (id) values (?)][3]} Query:{[insert into sequenceIdentifier (id) values (?)][4]} Query:{[insert into sequenceIdentifier (id) values (?)][5]} 新的SequenceStyleGenerator生成的标识符值不同于旧的SequenceHiLoGenerator。 新旧生成器之间的更新语句之所以不同是因为新生成器的默认优化器策略是“池”的而旧生成器只能使用“ hi / lo”策略。 JPA Entity(name tableIdentifier) public static class TableSequenceIdentifier {IdGeneratedValue(generator table, strategyGenerationType.TABLE)TableGenerator(name table, allocationSize 10)private Long id; } 运行以下测试 Test public void testTableSequenceIdentifierGenerator() {LOGGER.debug(testTableSequenceIdentifierGenerator);doInTransaction(new TransactionCallableVoid() {Overridepublic Void execute(Session session) {for (int i 0; i 5; i) {session.persist(new TableSequenceIdentifier());}session.flush();return null;}}); } 生成以下SQL语句输出 Query:{[select sequence_next_hi_value from hibernate_sequences where sequence_name tableIdentifier for update][]} Query:{[insert into hibernate_sequences(sequence_name, sequence_next_hi_value) values(tableIdentifier, ?)][0]} Query:{[update hibernate_sequences set sequence_next_hi_value ? where sequence_next_hi_value ? and sequence_name tableIdentifier][1,0]} Generated identifier: 1, using strategy: org.hibernate.id.MultipleHiLoPerTableGenerator Generated identifier: 2, using strategy: org.hibernate.id.MultipleHiLoPerTableGenerator Generated identifier: 3, using strategy: org.hibernate.id.MultipleHiLoPerTableGenerator Generated identifier: 4, using strategy: org.hibernate.id.MultipleHiLoPerTableGenerator Generated identifier: 5, using strategy: org.hibernate.id.MultipleHiLoPerTableGenerator Query:{[insert into tableIdentifier (id) values (?)][1]} Query:{[insert into tableIdentifier (id) values (?)][2]} Query:{[insert into tableIdentifier (id) values (?)][3]} Query:{[insert into tableIdentifier (id) values (?)][4]} Query:{[insert into tableIdentifier (id) values (?)][5]} 与前面的SEQUENCE示例一样Hibernate使用MultipleHiLoPerTableGenerator来保持向后兼容性。 切换到增强的id生成器 properties.put(hibernate.id.new_generator_mappings, true); 给我们以下输出 Query:{[select tbl.next_val from hibernate_sequences tbl where tbl.sequence_name? for update][tableIdentifier]} Query:{[insert into hibernate_sequences (sequence_name, next_val) values (?,?)][tableIdentifier,1]} Query:{[update hibernate_sequences set next_val? where next_val? and sequence_name?][11,1,tableIdentifier]} Query:{[select tbl.next_val from hibernate_sequences tbl where tbl.sequence_name? for update][tableIdentifier]} Query:{[update hibernate_sequences set next_val? where next_val? and sequence_name?][21,11,tableIdentifier]} Generated identifier: 1, using strategy: org.hibernate.id.enhanced.TableGenerator Generated identifier: 2, using strategy: org.hibernate.id.enhanced.TableGenerator Generated identifier: 3, using strategy: org.hibernate.id.enhanced.TableGenerator Generated identifier: 4, using strategy: org.hibernate.id.enhanced.TableGenerator Generated identifier: 5, using strategy: org.hibernate.id.enhanced.TableGenerator Query:{[insert into tableIdentifier (id) values (?)][1]} Query:{[insert into tableIdentifier (id) values (?)][2]} Query:{[insert into tableIdentifier (id) values (?)][3]} Query:{[insert into tableIdentifier (id) values (?)][4]} Query:{[insert into tableIdentifier (id) values (?)][5]} 您可以看到这次使用了新的增强型TableGenerator 。 有关这些优化策略的更多信息请阅读原始发行说明 。 代码可在GitHub上获得 。 翻译自: https://www.javacodegeeks.com/2014/07/from-jpa-to-hibernates-legacy-and-enhanced-identifier-generators.html
http://www.yutouwan.com/news/180026/

相关文章:

  • 雄县网站建设公司网站建设教程搭建芽嘱湖南岚鸿信赖
  • 网站dns解析营销型网站建设 深圳信科
  • 网站备案需要提交什么资料小程序定制开发报价
  • 网站开发人员晋升体系临沂百度seo
  • 嘉兴网站制作设计网站开发掌握哪种语言
  • 微信网站有什么作用网络营销有什么方式
  • 营销型网站的建设要求都有什么作用制作一个网站的全过程
  • 免费云网站一键生成app快站建站
  • nodejs网站开发实例vi设计的简介
  • 人力资源网站万网网站建设选哪个好
  • 网站建设价格评审资料清单阿里OSS做网站图库费用
  • 做app网站有哪些功能wordpress 当前页面 信息 输出
  • 网站开发模wordpress这软件怎么搜索
  • google 网站收录电子技术支持 东莞网站建设
  • 眉山建设中等职业技术学校 网站专业pc网站建设
  • 九江做网站公司网站当前链接
  • 邯郸专业做wap网站客栈网站建设
  • 网站合作建设方案免费的app软件下载大全
  • 没有网站如何做cpa推广免费模板素材网站有哪些
  • 全球最热门网站wordpress精美博客主题
  • 做背景图获取网站wordpress wp editor
  • 亚马逊网站成华区住房和城乡建设厅网站
  • 深圳网站建设方案服务公司微信网站建设和维护报价表
  • 网站开发职业前景评估老域名
  • 怎么在微信上做网站怎么让自己做的网站让别人看到
  • 足球网站怎么做长春建设信息网站
  • 设计实例网站定海区住房和城乡建设局网站
  • 合肥网站建设网站模板广州购物网站建设报价
  • 长沙网站建设 个人搭建一个论坛
  • 石家庄有哪些公司可以做网站seo包括哪些方面