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

福山区建设工程质量检测站网站小学最好的网站建设

福山区建设工程质量检测站网站,小学最好的网站建设,网站程序定制,wordpress导航功能介绍 在我以前的文章中#xff0c;我讨论了UUID代理密钥以及用例 #xff0c; 这些用例比更常见的自动递增标识符更合适。 UUID数据库类型 有几种表示128位UUID的方法#xff0c;每当有疑问时#xff0c;我都希望向Stack Exchange寻求专家建议。 由于通常对表标识符进行索… 介绍 在我以前的文章中我讨论了UUID代理密钥以及用例 这些用例比更常见的自动递增标识符更合适。 UUID数据库类型 有几种表示128位UUID的方法每当有疑问时我都希望向Stack Exchange寻求专家建议。 由于通常对表标识符进行索引因此数据库类型越紧凑索引所需的空间就越少。 从效率最高到最低这是我们的选择 某些数据库 PostgreSQL SQL Server 提供专用的UUID存储类型 否则我们可以将这些位存储为字节数组例如Oracle中的RAW16或标准BINARY16类型 另外我们可以使用2个bigint64位列但是复合标识符的效率要比单个列低 我们可以将十六进制值存储在CHAR36列中例如32个十六进制值和4个破折号但这将占用最多的空间因此这是效率最低的替代方法 Hibernate提供了许多标识符策略供您选择对于UUID标识符我们有三种选择 分配的生成器以及应用程序逻辑UUID生成 十六进制“ uuid”字符串生成器 更灵活的“ uuid2”生成器允许我们使用java.lang.UUID 16字节数组或十六进制String值 分配的发电机 分配的生成器允许应用程序逻辑控制实体标识符生成过程。 通过简单地省略标识符生成器定义Hibernate将考虑分配的标识符。 此示例使用BINARY16列类型因为目标数据库是HSQLDB 。 Entity(name assignedIdentifier) public static class AssignedIdentifier {IdColumn(columnDefinition BINARY(16))private UUID uuid;public AssignedIdentifier() {}public AssignedIdentifier(UUID uuid) {this.uuid uuid;} } 持久实体 session.persist(new AssignedIdentifier(UUID.randomUUID())); session.flush(); 恰好生成一个INSERT语句 Query:{[insert into assignedIdentifier (uuid) values (?)][[B76b0f8c3]} 让我们看看发出合并时会发生什么 session.merge(new AssignedIdentifier(UUID.randomUUID())); session.flush(); 这次我们同时获得了SELECT和INSERT Query:{[select assignedid0_.uuid as uuid1_0_0_ from assignedIdentifier assignedid0_ where assignedid0_.uuid?][[B23e9436c]} Query:{[insert into assignedIdentifier (uuid) values (?)][[B2b37d486]} persist方法采用一个临时实体并将其附加到当前的Hibernate会话。 如果已经存在一个连接的实体或者如果当前的实体是分离的我们将得到一个异常。 合并操作会将当前对象状态复制到现有的持久实体如果有中。 此操作适用于临时实体和分离实体但是对于临时实体持久化比合并操作有效得多。 对于分配的标识符合并将始终需要进行选择因为Hibernate无法知道是否已经存在具有相同标识符的持久实体。 对于其他标识符生成器​​Hibernate会寻找一个空标识符以判断该实体是否处于过渡状态。 这就是为什么Spring Data SimpleJpaRepositorysaveS实体方法不是使用分配的标识符的实体的最佳选择的原因 Transactional public S extends T S save(S entity) {if (entityInformation.isNew(entity)) {em.persist(entity);return entity;} else {return em.merge(entity);} } 对于分配的标识符此方法将始终选择合并而不是持久化因此对于每个新插入的实体您将同时获得SELECT和INSERT。 UUID生成器 这次我们不会自己分配标识符而是让Hibernate代表我们生成它。 当遇到一个空标识符时Hibernate假定一个临时实体为其生成一个新的标识符值。 这次合并操作将不需要在插入过渡实体之前进行选择查询。 UUIDHexGenerator UUID十六进制生成器是最早的UUID标识符生成器​​它以“ uuid”类型注册。 它可以生成具有以下模式的32位十六进制UUID字符串值也可以使用分隔符8 {sep} 8 {sep} 4 {sep} 8 {sep} 4。 此生成器不符合IETF RFC 4122 它使用8-4-4-4-12数字表示。 Entity(name uuidIdentifier) public static class UUIDIdentifier {GeneratedValue(generator uuid)GenericGenerator(name uuid, strategy uuid)Column(columnDefinition CHAR(32))Idprivate String uuidHex; } 持久化或合并临时实体 session.persist(new UUIDIdentifier()); session.flush(); session.merge(new UUIDIdentifier()); session.flush(); 每个操作生成一个INSERT语句 Query:{[insert into uuidIdentifier (uuidHex) values (?)][2c929c6646f02fda0146f02fdbfa0000]} Query:{[insert into uuidIdentifier (uuidHex) values (?)][2c929c6646f02fda0146f02fdbfc0001]} 您可以检出发送到SQL INSERT查询的字符串参数值。 UUIDGenerator 较新的UUID生成器符合IETF RFC 4122变体2并提供可插拔生成策略。 它以“ uuid2”类型注册并且提供了更大的类型范围供您选择 java.lang.UUID 16字节数组 十六进制字符串值 Entity(name uuid2Identifier) public static class UUID2Identifier {GeneratedValue(generator uuid2)GenericGenerator(name uuid2, strategy uuid2)Column(columnDefinition BINARY(16))Idprivate UUID uuid; } 持久化或合并临时实体 session.persist(new UUID2Identifier()); session.flush(); session.merge(new UUID2Identifier()); session.flush(); 每个操作生成一个INSERT语句 Query:{[insert into uuid2Identifier (uuid) values (?)][[B68240bb]} Query:{[insert into uuid2Identifier (uuid) values (?)][[B577c3bfa]} 当我们配置Id列定义时此SQL INSERT查询正在使用字节数组。 代码可在GitHub上获得 。 翻译自: https://www.javacodegeeks.com/2014/07/hibernate-and-uuid-identifiers.html
http://www.huolong8.cn/news/43749/

相关文章:

  • 鄱阳县精准扶贫旅游网站建设目的有没有免费开网站的
  • 福建省中城建设工程有限公司网站广西桂建云证件查询
  • 腾讯建站模板杭州做网站哪家公司好
  • 山东川畅科技网站设计网络营销策划模板
  • 电子商城网站开发软件做公司网站用什么系统
  • 苏州相城网站建设html是建网站导航栏怎么做
  • 前端网站开发总结申请域名费用
  • 黄冈网站建设报价北京网站建设公司 北京网站设计 网页设计制作 高端网站建设 分形科技
  • 小工厂怎么做网站j2ee 网站开发
  • 成都网站推广优化公司网络服务类型及协议
  • 推荐一些做电子的网站关键词云图
  • 怎样做水果外卖加盟网站邢台163官网
  • c 网站开发引擎网络广告策划的概念
  • 大学生创新创业网站开发建设展示型网站公司哪家好
  • 做外贸比较好得网站网站栏目 添加 管理
  • 国内外网站建设比较景德镇网站维护
  • 微信怎么做网站的动图西安建设公司都有哪些
  • angular2是做网站的还是手机的企业app有哪些
  • 建站运营新闻wordpress激活插件
  • 网站怎么做切换中英文做网站图片大小
  • 国际域名的外贸网站设计方案格式模板
  • 做网站注册的商标类别linux做ppt下载网站
  • 深圳涂料网站建设外贸数据分析网站
  • 前端做微网站做外贸的数据网站
  • 阿里网站搭建给网站做伪静态
  • 网站关键词方案网站建设难度大吗
  • 导购类网站怎么做的wordpress模板仿新版虎嗅huxiu-new主题
  • 网站建设外包合同7k7k网页游戏官网
  • 备案需要写网站建设方案书室内设计师网上培训班
  • c 做网站教程做票据业务的p2p网站