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

佛山网站商城建设wordpress 添加证书

佛山网站商城建设,wordpress 添加证书,wordpress密码_,黄页是什么东西ogm sessionHibernate OGM的第一个最终版本已经发布 #xff0c;团队从发布狂潮中恢复了一些。 因此#xff0c;他们考虑开设一系列教程风格的博客#xff0c;使您有机会轻松地从Hibernate OGM重新开始。 感谢Gunnar Morling#xff08; gunnarmorling #xff09;创建了本… ogm session Hibernate OGM的第一个最终版本已经发布 团队从发布狂潮中恢复了一些。 因此他们考虑开设一系列教程风格的博客使您有机会轻松地从Hibernate OGM重新开始。 感谢Gunnar Morling gunnarmorling 创建了本教程。 介绍 不知道什么是Hibernate OGM Hibernate OGM是Hibernate下的最新项目它允许您通过著名的JPA将实体模型持久保存在不同的NoSQL存储中。 我们将在接下来的几周内介绍这些主题 坚持您的第一个实体此批次 查询数据 在WildFly上运行 在Java SE上使用CDI运行 将数据存储到同一应用程序中的两个不同存储中 如果您希望我们讨论任何其他主题请告诉我们。 只需在下面添加评论或向我们发送您的建议 。 在本系列的第一部分中我们将建立一个具有所需依赖项的Java项目创建一些简单实体然后将它们写入商店或从商店中读取。 我们将从Neo4j图形数据库开始 然后仅需进行少量配置更改就切换到MongoDB文档存储 。 项目设置 首先让我们创建一个具有所需依赖项的新Java项目。 接下来我们将使用Maven作为构建工具但是Gradle或其他工具当然也可以很好地工作。 将此添加到pom.xml的dependencyManagement块中 ... dependencyManagementdependencies...dependencygroupIdorg.hibernate.ogm/groupIdartifactIdhibernate-ogm-bom/artifactIdtypepom/typeversion4.1.1.Final/versionscopeimport/scope/dependency.../dependencies /dependencyManagement ... 这将确保您使用的是匹配版本的Hibernate OGM模块及其依赖项。 然后将以下内容添加到dependencies块 ... dependencies...dependencygroupIdorg.hibernate.ogm/groupIdartifactIdhibernate-ogm-neo4j/artifactId/dependencydependencygroupIdorg.jboss.jbossts/groupIdartifactIdjbossjta/artifactId/dependency... /dependencies ... 依赖项是 Hibernate OGM模块用于处理嵌入式Neo4j数据库 这将引入所有其他必需的模块例如Hibernate OGM内核和Neo4j驱动程序。 使用MongoDB时可以将其与hibernate-ogm-mongodb交换。 JBoss对Java Transaction APIJTA的实现当不在WildFly之类的Java EE容器中运行时需要此实现 领域模型 我们的示例域模型由三个类组成 Hike HikeSection和Person 。 之间存在组合关系Hike和HikeSection 即上调包括几个部分其生命周期是完全依赖于远足。 远足部分列表已订购 坚持远足及其部分时必须保持此顺序。 Hike与Person 充当远足组织者之间的关联是双向的多对一/一对多关系一个人可以组织零个或多个远足而一个远足恰好有一个人充当组织者。 映射实体 现在通过创建实体类并用所需的元数据注释它们来映射域模型。 让我们从Person类开始 Entity public class Person {IdGeneratedValue(generator uuid)GenericGenerator(name uuid, strategy uuid2)private long id;private String firstName;private String lastName;OneToMany(mappedBy organizer, cascade CascadeType.PERSIST)private SetHike organizedHikes new HashSet();// constructors, getters and setters... } 实体类型使用Entity注释进行标记而表示标识符的属性则使用Id注释。 Hibernate OGM无需手动分配ID而是可以解决此问题它提供了几种ID生成策略例如模拟序列UUID等。 通常使用UUID生成器是一个不错的选择因为它可以确保跨不同NoSQL数据存储的可移植性并使ID生成快速且可扩展。 但是根据您使用的商店在MongoDB的情况下您也可以使用特定的ID类型例如对象ID有关详细信息请参阅参考指南 。 最后 OneToMany将organizedHikes属性标记为实体之间的关联。 由于它是双向实体因此必须使用mappedBy属性来指定负责管理它的关联方。 指定级联类型PERSIST可确保坚持一个人也将自动导致其关联的远足也被坚持。 接下来是Hike类 Entity public class Hike {IdGeneratedValue(generator uuid)GenericGenerator(name uuid, strategy uuid2)private String id;private String description;private Date date;private BigDecimal difficulty;ManyToOneprivate Person organizer;ElementCollectionOrderColumn(name sectionNo)private ListHikeSection sections;// constructors, getters and setters... } 在这里 ManyToOne注释标记了Hike和Organizer之间的双向关联的另一面。 由于HikeSection应该依赖于Hike因此部分列表通过ElementCollection映射。 为了确保在数据存储区中保持节的顺序 OrderColumn使用OrderColumn 。 这将在保留的记录中添加一个额外的“列”其中包含每个部分的订单号。 最后 HikeSection类 Embeddable public class HikeSection {private String start;private String end;// constructors, getters and setters... } 与Person和Hike不同它不是通过Entity而是使用Embeddable映射的。 这意味着它始终是另一个实体在本例中为Hike 的一部分因此本身也没有身份。 因此它不会声明任何Id属性。 请注意如果您将Hibernate ORM与关系数据存储一起使用则这些映射看起来完全相同。 的确这就是Hibernate OGM的承诺之一尽可能简化关系和NoSQL范例之间的迁移 创建persistence.xml 有了实体类之后JPA的persistence.xml描述符又丢失了一件事。 在src / main / resources / META-INF / persistence.xml下创建它 ?xml version1.0 encodingutf-8?persistence xmlnshttp://java.sun.com/xml/ns/persistencexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsdversion2.0persistence-unit namehikePu transaction-typeRESOURCE_LOCALproviderorg.hibernate.ogm.jpa.HibernateOgmPersistence/providerpropertiesproperty namehibernate.ogm.datastore.provider valueneo4j_embedded /property namehibernate.ogm.datastore.database valueHikeDB /property namehibernate.ogm.neo4j.database_path valuetarget/test_data_dir //properties/persistence-unit /persistence 如果您以前使用过JPA那么对您来说这个持久性单元定义应该看起来非常熟悉。 与在关系数据库之上使用经典Hibernate ORM的主要区别在于我们需要为Hibernate OGM指定特定的提供程序类 org.hibernate.ogm.jpa.HibernateOgmPersistence 。 此外还定义了一些特定于Hibernate OGM和所选后端的属性来设置 使用的后端在这种情况下为嵌入式Neo4j图形数据库 Neo4j数据库的名称 存储Neo4j数据库文件的目录 根据您的用法和后端可能需要其他属性例如设置主机用户名密码等。您可以在名为BACK ENDProperties的类中找到所有可用的BACK ENDProperties 例如Neo4jProperties MongoDBProperties等。 。 保存和加载实体 所有这些位都准备就绪后就可以保留并加载某些实体了。 为此创建一个简单的JUnit测试外壳 public class HikeTest {private static EntityManagerFactory entityManagerFactory;BeforeClasspublic static void setUpEntityManagerFactory() {entityManagerFactory Persistence.createEntityManagerFactory( hikePu );}AfterClasspublic static void closeEntityManagerFactory() {entityManagerFactory.close();} } 这两种方法为persistence.xml中定义的持久性单元管理实体管理器工厂。 它保存在一个字段中因此可以用于多种测试方法请记住实体管理器工厂的创建成本相当高因此应将它们初始化一次并保留以备重用。 然后创建一个持久保存并加载一些数据的测试方法 Test public void canPersistAndLoadPersonAndHikes() {EntityManager entityManager entityManagerFactory.createEntityManager();entityManager.getTransaction().begin();// create a PersonPerson bob new Person( Bob, McRobb );// and two hikesHike cornwall new Hike(Visiting Lands End, new Date(), new BigDecimal( 5.5 ),new HikeSection( Penzance, Mousehole ),new HikeSection( Mousehole, St. Levan ),new HikeSection( St. Levan, Lands End ));Hike isleOfWight new Hike(Exploring Carisbrooke Castle, new Date(), new BigDecimal( 7.5 ),new HikeSection( Freshwater, Calbourne ),new HikeSection( Calbourne, Carisbrooke Castle ));// let Bob organize the two hikescornwall.setOrganizer( bob );bob.getOrganizedHikes().add( cornwall );isleOfWight.setOrganizer( bob );bob.getOrganizedHikes().add( isleOfWight );// persist organizer (will be cascaded to hikes)entityManager.persist( bob );entityManager.getTransaction().commit();// get a new EM to make sure data is actually retrieved from the store and not Hibernates internal cacheentityManager.close();entityManager entityManagerFactory.createEntityManager();// load it backentityManager.getTransaction().begin();Person loadedPerson entityManager.find( Person.class, bob.getId() );assertThat( loadedPerson ).isNotNull();assertThat( loadedPerson.getFirstName() ).isEqualTo( Bob );assertThat( loadedPerson.getOrganizedHikes() ).onProperty( description ).containsOnly( Visiting Lands End, Exploring Carisbrooke Castle );entityManager.getTransaction().commit();entityManager.close(); } 注意这两个动作是如何在事务中发生的。 Neo4j是一个完全事务性的数据存储库可以通过JPA的事务处理API很好地控制它。 在实际的应用程序中可能会使用一种较为冗长的方法来进行事务控制。 根据所选的后端和应用程序运行的环境类型例如Java EE容器例如WildFly 您可以利用通过CDI或EJB进行的声明式事务管理。 但是让我们再保存一次。 保留了一些数据之后您可以使用Neo4j随附的漂亮的Web控制台对其进行检查。 下面显示了测试保留的实体 Hibernate OGM旨在为您要定位的数据存储提供最自然的映射。 对于Neo4j作为图形数据存储的情况这意味着任何实体都将映射到相应的节点。 实体属性被映射为节点属性请参见描述黑名单节点之一的黑框。 任何不受本机支持的属性类型都将根据需要进行转换。 例如 date属性就是这种情况它作为ISO格式的字符串保留。 此外每个实体节点都有标签 ENTITY以将其与其他类型的节点区分开和指定其实体类型的标签在这种情况下为远足。 关联被映射为节点之间的关系关联角色被映射为关系类型 。 请注意Neo4j没有嵌入式对象的概念。 因此 HikeSection对象被映射为带有标签EMBEDDED的节点并与拥有的Hike节点链接。 节的顺序通过关系上的属性保留。 切换到MongoDB Hibernate OGM的承诺之一是允许使用相同的API即JPA与不同的NoSQL存储一起使用。 因此让我们看一下它如何保存和利用MongoDB它与Neo4j不同它是一个文档数据存储区并以类似JSON的表示形式保留数据。 为此请首先将Neo4j后端替换为以下内容 ... dependencygroupIdorg.hibernate.ogm/groupIdartifactIdhibernate-ogm-mongodb/artifactId /dependency ... 然后使用可通过以下方式访问的属性更新persistence.xml中的配置以将MongoDB作为后端使用 提供与您的环境匹配的主机名和凭据的MongoDBProperties 如果尚未安装MongoDB则可以在此处下载 ... propertiesproperty namehibernate.ogm.datastore.provider valuemongodb /property namehibernate.ogm.datastore.database valueHikeDB /property namehibernate.ogm.datastore.host valuemongodb.mycompany.com /property namehibernate.ogm.datastore.username valuedb_user /property namehibernate.ogm.datastore.password valuetop_secret! / /properties ... 这就是将实体保留在MongoDB中而不是Neo4j中所需要做的全部工作。 如果现在再次运行测试您将在数据存储区中找到以下BSON文档 # Collection Person {_id : 50b62f9b-874f-4513-85aa-c2f59015a9d0,firstName : Bob,lastName : McRobb,organizedHikes : [a78d731f-eff0-41f5-88d6-951f0206ee67,32384eb4-717a-43dc-8c58-9aa4c4e505d1] }# Collection Hike {_id : a78d731f-eff0-41f5-88d6-951f0206ee67,date : ISODate(2015-01-16T11:59:48.928Z),description : Visiting Lands End,difficulty : 5.5,organizer_id : 50b62f9b-874f-4513-85aa-c2f59015a9d0,sections : [{sectionNo : 0,start : Penzance,end : Mousehole},{sectionNo : 1,start : Mousehole,end : St. Levan},{sectionNo : 2,start : St. Levan,end : Lands End}] } {_id : 32384eb4-717a-43dc-8c58-9aa4c4e505d1,date : ISODate(2015-01-16T11:59:48.928Z),description : Exploring Carisbrooke Castle,difficulty : 7.5,organizer_id : 50b62f9b-874f-4513-85aa-c2f59015a9d0,sections : [{sectionNo : 1,start : Calbourne,end : Carisbrooke Castle},{sectionNo : 0,start : Freshwater,end : Calbourne}] } 同样映射是非常自然的就像使用MongoDB这样的文档存储时所期望的那样。 通过将参考ID存储在任意一侧可以映射Person和Hike之间的双向一对多/多对一关联。 当加载回数据时Hibernate OGM将解析ID并允许将关联从一个对象导航到另一个对象。 元素集合使用MongoDB存储分层结构的功能进行映射。 在此加息的各个部分映射到拥有加息的文档中的数组并带有附加的字段sectionNo来维护收集顺序。 这样可以通过一次往返数据存储的方式非常有效地加载实体及其嵌入式元素。 结语 在带有Hibernate OGM 101的NoSQL的第一部分中您学习了如何设置具有所需依赖项的项目映射某些实体和关联并将其持久化在Neo4j和MongoDB中。 所有这些都是通过众所周知的JPA API进行的。 因此如果您过去在关系数据库之上使用过Hibernate ORM和JPA那么深入NoSQL领域将变得异常简单。 同时每个商店都针对某些用例因此提供了特定的功能和配置选项。 自然这些不能通过通用API例如JPA公开。 因此Hibernate OGM允许您使用本机NoSQL查询并允许通过其灵活的选项系统配置商店特定的设置。 您可以在GitHub上找到此博客文章的完整示例代码 。 只需叉子然后随心所欲地玩就可以了。 当然存储实体并通过其ID取回实体仅仅是开始。 在任何实际的应用程序中您都希望对数据运行查询并且还可能希望利用所选NoSQL存储库的某些特定功能和设置。 我们将在本系列的下一部分中谈到这一点请继续关注 翻译自: https://www.javacodegeeks.com/2015/01/nosql-with-hibernate-ogm-part-one-persisting-your-first-entities.htmlogm session
http://www.zqtcl.cn/news/86891/

相关文章:

  • 蔬菜类网站建设规划书清远市网站建设公司
  • 怎么做垂直网站手机企业网站制作流程
  • 天津平台网站建设推荐网站空间ftp
  • 代理彩票网站做链接wordpress运行
  • 做视频上传多少个网站西安做网站公司那家好
  • wordpress收费会员seo搜索优化专员
  • 国外私人网站什么平台可以找客源
  • 企业网站必须备案仿 wordpress主题
  • php能自己做网站吗做关键词排名好的公司
  • 湖州网站建设制作网站可视化后台
  • ppt的免费网站wordpress微云解析插件
  • 怎么学做淘宝免费视频网站wordpress标签手册
  • 宁波信誉好品牌网站设计地址一个链接打开是表白
  • 兼职网站建设 开源泉州个人建站模板
  • 深圳专业网站建百度点击软件
  • 湛江网站开发公司抖音关键词排名查询
  • 保健品网站建设流程成都网站建设的公司哪家好
  • 做明星简介网站侵权吗seo是做网站源码还是什么
  • 赤峰网站建设赤峰搜索引擎排名优化方案
  • 衡阳县住房和城乡建设局网站网站后台怎么做超链接
  • 响应式网站 768 320视频拍摄器材
  • 旅游精品网站建设西安网络建设公司
  • 自己怎么做商城网站吗沈阳工程信息
  • 网站建设柚子网络科技多品牌网站建设
  • 怀化招标网站印度喜欢用什么框架做外贸网站
  • python 开发手机网站开发优质国外网站
  • 长安网站建设流程网站开发文档模板下载
  • 河南省建设部省厅网站兰溪做网站哪家好
  • 河南网站优化推广全国的做网站的公司
  • 建设企业门户网站易语言如何做验证系统官方网站