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

陕西省住房和城乡建设厅网站山东seo百度推广

陕西省住房和城乡建设厅网站,山东seo百度推广,树莓派wordpress,上海当地网站这是我关于JPA 2.1实体图的第二篇文章。 第一篇文章描述了命名实体图的用法。 这些可用于定义在编译时将使用查找或查询方法获取的实体和/或属性的图形。 动态实体图以相同的方式但以动态方式这样做。 这意味着您可以在运行时使用EntityGraph API定义实体图。 如果您错过了第一… 这是我关于JPA 2.1实体图的第二篇文章。 第一篇文章描述了命名实体图的用法。 这些可用于定义在编译时将使用查找或查询方法获取的实体和/或属性的图形。 动态实体图以相同的方式但以动态方式这样做。 这意味着您可以在运行时使用EntityGraph API定义实体图。 如果您错过了第一篇文章并且想阅读如何定义命名实体图或JPA 2.0如何解决延迟加载问题请查看以下文章 JPA 2.1实体图–第1部分命名实体图 。 示例实体 我们将使用与上一篇文章相同的示例。 因此如果您已阅读另一段则可以跳过此段。 我们将使用3个实体。 它们是Order OrderItem和Product 。 一个Order可能包含多个OrderItem 每个OrderItem都属于一个Product 。 所有这些关系的FetchType都是FetchType.LAZY。 因此默认情况下实体管理器不会从数据库中获取它们而是使用代理对其进行初始化。 订单实体 Entity Table(name purchaseOrder) NamedEntityGraph(name graph.Order.items, attributeNodes NamedAttributeNode(value items, subgraph items), subgraphs NamedSubgraph(name items, attributeNodes NamedAttributeNode(product))) public class Order implements Serializable {IdGeneratedValue(strategy GenerationType.AUTO)Column(name id, updatable false, nullable false)private Long id null;VersionColumn(name version)private int version 0;Columnprivate String orderNumber;OneToMany(mappedBy order, fetch FetchType.LAZY)private SetOrderItem items new HashSetOrderItem();... OrderItem实体 Entity public class OrderItem implements Serializable {IdGeneratedValue(strategy GenerationType.AUTO)Column(name id, updatable false, nullable false)private Long id null;VersionColumn(name version)private int version 0;Columnprivate int quantity;ManyToOneprivate Order order;ManyToOne(fetch FetchType.LAZY)private Product product; 产品实体 Entity public class Product implements Serializable {IdGeneratedValue(strategy GenerationType.AUTO)Column(name id, updatable false, nullable false)private Long id null;VersionColumn(name version)private int version 0;Columnprivate String name;动态实体图 因此让我们定义一个动态实体图。 我们将与第一篇文章中的操作相同并定义一个简单的实体图该图告诉实体管理器获取带有所有相关OrderItem的Order 。 因此我们使用实体管理器的createEntityGraphClass rootType方法为Order实体创建实体图。 在下一步中我们创建将与该实体图一起获取的Order实体的所有属性的列表。 我们只需要添加属性items 因为我们将使用该实体图作为加载图并且默认情况下所有其他属性都渴望使用。 如果我们将此实体图用作提取图则需要将所有属性添加到应从数据库中提取的列表中。 EntityGraphOrder graph this.em.createEntityGraph(Order.class); graph.addAttributeNodes(items);MapString, Object hints new HashMapString, Object(); hints.put(javax.persistence.loadgraph, graph);this.em.find(Order.class, orderId, hints); 好的动态定义应从数据库中获取实体的哪些属性很不错。 但是如果我们需要实体图呢 像使用其所有OrderItems及其产品获取订单 这可以通过子图来完成。 子图基本上是一个嵌入到另一个实体图或实体子图中的实体图。 子图的定义类似于实体图的定义。 为了创建并嵌入子图到实体图我们需要调用addSubgraph字符串的attributeName方法EntityGraph对象上。 这将为具有给定名称的属性创建一个子图。 在下一步中我们需要定义此子图应获取的属性列表。 以下代码段显示了带有实体子图的实体图的定义该图指示实体管理器获取带有OrderItem及其Product的Order 。 EntityGraphOrder graph this.em.createEntityGraph(Order.class); SubgraphOrderItem itemGraph graph.addSubgraph(items); itemGraph.addAttributeNodes(product);MapString, Object hints new HashMapString, Object(); hints.put(javax.persistence.loadgraph, graph);return this.em.find(Order.class, orderId, hints);里面发生什么事了 与上一篇文章一样我们希望查看休眠日志并找出休眠状态。 如我们所见动态实体图的结果与命名实体图的结果相同。 它创建一个负载计划和一个包含所有3个实体的一条select语句。 2014-04-07 20:08:15,260 DEBUG [org.hibernate.loader.plan.build.spi.LoadPlanTreePrinter] (default task-2) LoadPlan(entityblog.thoughts.on.java.jpa21.entity.graph.model.Order)- Returns- EntityReturnImpl(entityblog.thoughts.on.java.jpa21.entity.graph.model.Order, querySpaceUid, pathblog.thoughts.on.java.jpa21.entity.graph.model.Order)- CollectionAttributeFetchImpl(collectionblog.thoughts.on.java.jpa21.entity.graph.model.Order.items, querySpaceUid, pathblog.thoughts.on.java.jpa21.entity.graph.model.Order.items)- (collection element) CollectionFetchableElementEntityGraph(entityblog.thoughts.on.java.jpa21.entity.graph.model.OrderItem, querySpaceUid, pathblog.thoughts.on.java.jpa21.entity.graph.model.Order.items.)- QuerySpaces- EntityQuerySpaceImpl(uid, entityblog.thoughts.on.java.jpa21.entity.graph.model.Order)- SQL table alias mapping - order0_- alias suffix - 0_- suffixed key columns - {id1_2_0_}- JOIN (JoinDefinedByMetadata(items)) : - - CollectionQuerySpaceImpl(uid, collectionblog.thoughts.on.java.jpa21.entity.graph.model.Order.items)- SQL table alias mapping - items1_- alias suffix - 1_- suffixed key columns - {order_id4_2_1_}- entity-element alias suffix - 2_- 2_entity-element suffixed key columns - id1_0_2_- JOIN (JoinDefinedByMetadata(elements)) : - - EntityQuerySpaceImpl(uid, entityblog.thoughts.on.java.jpa21.entity.graph.model.OrderItem)- SQL table alias mapping - items1_- alias suffix - 2_- suffixed key columns - {id1_0_2_}2014-04-07 20:08:15,260 DEBUG [org.hibernate.loader.entity.plan.EntityLoader] (default task-2) Static select for entity blog.thoughts.on.java.jpa21.entity.graph.model.Order [NONE:-1]: select order0_.id as id1_2_0_, order0_.orderNumber as orderNum2_2_0_, order0_.version as version3_2_0_, items1_.order_id as order_id4_2_1_, items1_.id as id1_0_1_, items1_.id as id1_0_2_, items1_.order_id as order_id4_0_2_, items1_.product_id as product_5_0_2_, items1_.quantity as quantity2_0_2_, items1_.version as version3_0_2_ from purchaseOrder order0_ left outer join OrderItem items1_ on order0_.iditems1_.order_id where order0_.id?结论 在第一篇文章中定义了命名实体图之后 我们现在使用EntityGraph API定义动态实体图。 使用此实体图我们可以仅从数据库中查询一次就获取多个实体的图。 这可用于解决LazyInitializationException并提高应用程序的性能。 您如何看待动态实体图 从我的角度来看与JPA 2.0相比这是一个非常有用的扩展。 特别是动态实体图对于基于运行时信息例如方法参数定义获取策略很有用。 翻译自: https://www.javacodegeeks.com/2014/05/jpa-2-1-entity-graph-part-2-define-lazyeager-loading-at-runtime.html
http://www.zqtcl.cn/news/294096/

相关文章:

  • 网站建设中标签导航的特征小型广告公司简介
  • 广西省建设厅网站jquery特效网站
  • 做推文的网站创意设计绘画作品
  • 做响应式网站的体会长沙域名注册公司
  • 网站备案照片 多少钱网站怎么做网页游戏
  • 金坛区建设局网站中搜网站提交
  • 建站之星如何建网站html静态网页作业成品
  • 商城类网站用什么做珠海找工作哪个网站好
  • 宁波建站模板厂家太原企业网站排名
  • 厦门网站建设定制多少钱wordpress能用一个数据库
  • 找人做网站需要准备什么材料怎么建设自己淘宝网站首页
  • 汽车网站建设费用js怎么做网站
  • 四川万景建设工程有限公司网站做公司网站用什么系统
  • 长沙企业建站系统3d视频制作公司
  • 长沙的网站制作公司网站建设方案的需求分析
  • 电子商务网站发展建设论文网站开发需要经过的几个主要阶段
  • 建设网站外贸做网站必须会php吗
  • 网站建设费用的请示丹徒区建设局网站
  • 上海网站制作机构个人做外贸网站违法吗
  • 咖啡厅网站开发目标汕头最新消息今天
  • 广州做外贸网站的公司简介做行业门户网站注意什么
  • 专业网页网站设计图书成都医院做网站建设
  • 浙江网站建设dyfwzx网站开发的广告词
  • 网站 seo 优化 效果中华室内设计网公众号下载
  • 如何自己建网站企业网站建站快车的优点
  • 目前做网站的公司有哪些管理系统中的计算机应用
  • 百度网站服务器企业网站报价
  • 网站后台账户如何做会计分录电商数据查询平台
  • 素材动图网站90设计app下载
  • 绍兴网站设计公司网站空间位置是什么