{"id":1488,"date":"2016-10-03T14:52:19","date_gmt":"2016-10-03T12:52:19","guid":{"rendered":"http:\/\/blog.rabahi.net\/?page_id=1488"},"modified":"2017-05-10T17:49:56","modified_gmt":"2017-05-10T15:49:56","slug":"java-hibernate","status":"publish","type":"page","link":"https:\/\/blog.rabahi.net\/?page_id=1488","title":{"rendered":"Java &#8211; Hibernate"},"content":{"rendered":"<div id=\"toc_container\" class=\"no_bullets\"><p class=\"toc_title\">Contents<\/p><ul class=\"toc_list\"><li><a href=\"#Dependencies\"><span class=\"toc_number toc_depth_1\">1<\/span> Dependencies<\/a><\/li><li><a href=\"#JPA_Java_Persistence_API\"><span class=\"toc_number toc_depth_1\">2<\/span> JPA (Java Persistence API)<\/a><ul><li><a href=\"#Create_entity\"><span class=\"toc_number toc_depth_2\">2.1<\/span> Create entity<\/a><\/li><li><a href=\"#Read_entity\"><span class=\"toc_number toc_depth_2\">2.2<\/span> Read entity<\/a><\/li><li><a href=\"#Update_entity\"><span class=\"toc_number toc_depth_2\">2.3<\/span> Update entity<\/a><\/li><li><a href=\"#Delete_entity\"><span class=\"toc_number toc_depth_2\">2.4<\/span> Delete entity<\/a><\/li><\/ul><\/li><li><a href=\"#Entity_relationship\"><span class=\"toc_number toc_depth_1\">3<\/span> Entity relationship<\/a><ul><li><a href=\"#One_to_One\"><span class=\"toc_number toc_depth_2\">3.1<\/span> One to One<\/a><\/li><li><a href=\"#Many_to_One\"><span class=\"toc_number toc_depth_2\">3.2<\/span> Many to One<\/a><\/li><li><a href=\"#Many_to_Many\"><span class=\"toc_number toc_depth_2\">3.3<\/span> Many to Many<\/a><\/li><\/ul><\/li><li><a href=\"#Schema\"><span class=\"toc_number toc_depth_1\">4<\/span> Schema<\/a><ul><li><a href=\"#Create_Schema\"><span class=\"toc_number toc_depth_2\">4.1<\/span> Create Schema<\/a><\/li><li><a href=\"#Update_Schema\"><span class=\"toc_number toc_depth_2\">4.2<\/span> Update Schema<\/a><\/li><li><a href=\"#Drop_Schema\"><span class=\"toc_number toc_depth_2\">4.3<\/span> Drop Schema<\/a><\/li><\/ul><\/li><\/ul><\/div>\n<h1><span id=\"Dependencies\">Dependencies<\/span><\/h1>\n<p>If you use maven, add this to your pom.xml:<\/p>\n<pre lang=\"xml\">\r\n<dependency>\r\n  <groupId>org.hibernate<\/groupId>\r\n  <artifactId>hibernate-core<\/artifactId>\r\n  <version>${hibernate.version}<\/version>\r\n<\/dependency>\r\n<\/pre>\n<h1><span id=\"JPA_Java_Persistence_API\">JPA (Java Persistence API)<\/span><\/h1>\n<h2><span id=\"Create_entity\">Create entity<\/span><\/h2>\n<pre lang=\"java\">\r\n\/\/ begin transaction:\r\nsession.beginTransaction();\r\n\r\n\/\/ save entity :\r\nsession.save(entity);\r\n\r\n\/\/ then commit :\r\nsession.getTransaction().commit();\r\n<\/pre>\n<h2><span id=\"Read_entity\">Read entity<\/span><\/h2>\n<pre lang=\"java\">\r\nObject entity = session.get(MyImplementation.class,\"MyImplementationID\");\r\n<\/pre>\n<h2><span id=\"Update_entity\">Update entity<\/span><\/h2>\n<pre lang=\"java\">\r\n\/\/ begin transaction: \r\nentityManager.getTransaction().begin();\r\n\r\n\/\/ we use \"merge\" method from entityManager :\r\nentityManager.merge(entity);\r\n\r\n\/\/ then commit :\r\nentityManager.getTransaction().commit();\r\n<\/pre>\n<h2><span id=\"Delete_entity\">Delete entity<\/span><\/h2>\n<pre lang=\"java\">\r\n\/\/ begin transaction: \r\nsession.beginTransaction();\r\n\r\n\/\/ delete entity :\r\nsession.delete (entity);\r\n\r\n\/\/ then commit :\r\nsession.getTransaction().commit();\r\n<\/pre>\n<h1><span id=\"Entity_relationship\">Entity relationship<\/span><\/h1>\n<h2><span id=\"One_to_One\">One to One<\/span><\/h2>\n<pre lang=\"java\">\r\n@Entity\r\n@Table(name = \"EntityA \")\r\npublic class EntityA {\r\n\r\n@Id\r\n@Column(name=\"EntityA_ID\") \r\nprivate String id;\r\n\r\n@OneToOne\r\n@PrimaryKeyJoinColumn\r\nprivate EntityB entityB;\r\n\r\n}\r\n<\/pre>\n<pre lang=\"java\">\r\n@Entity\r\n@Table(name = \"EntityB \")\r\npublic class EntityB {\r\n\r\n@Id\r\n@Column(name=\"EntityB_ID\") \r\nprivate String id;\r\n\r\n@OneToOne(mappedBy=\"entityB\", cascade = CascadeType.ALL)\r\nprivate EntityA entityA;\r\n\r\n}\r\n<\/pre>\n<h2><span id=\"Many_to_One\">Many to One<\/span><\/h2>\n<pre lang=\"java\">\r\n@Entity\r\n@Table(name = \"EntityA\")\r\npublic class EntityA {\r\n\r\n@Id\r\n@Column(name=\"EntityA_ID\") \r\nprivate String id;\r\n\r\n@OneToMany(mappedBy = \"entityB\", cascade = CascadeType.ALL)\r\nprivate List<EntityB> entityBs;\r\n\r\n}\r\n<\/pre>\n<pre lang=\"java\">\r\n@Entity\r\n@Table(name = \"EntityB\")\r\npublic class EntityB {\r\n\r\n@Id\r\n@Column(name=\"EntityB_ID\") \r\nprivate String id;\r\n\r\n@ManyToOne(optional = false)\r\n@JoinColumn(name = \"EntityA_ID\")\r\nprivate EntityA entityA;\r\n\r\n}\r\n<\/pre>\n<h2><span id=\"Many_to_Many\">Many to Many<\/span><\/h2>\n<pre lang=\"java\">\r\n@Entity\r\n@Table(name = \"EntityA\")\r\npublic class EntityA {\r\n\r\n@Id\r\n@Column(name=\"EntityA_ID\") \r\nprivate String id;\r\n\r\n@ManyToMany(cascade=CascadeType.ALL, mappedBy=\"entityAs\")\r\nprivate Set<EntityB> entityBs;\r\n\r\n}\r\n<\/pre>\n<pre lang=\"java\">\r\n@Entity\r\n@Table(name = \"EntityB\")\r\npublic class EntityB {\r\n\r\n@Id\r\n@Column(name=\"EntityB_ID\") \r\nprivate String id;\r\n\r\n@ManyToMany(cascade=CascadeType.ALL)  \r\n@JoinTable(name=\"entityA_entityB\", joinColumns=@JoinColumn(name=\"EntityB_ID\"), inverseJoinColumns=@JoinColumn(name=\"EntityA_ID\"))\r\nprivate Set<EntityA> entityAs;\r\n\r\n}\r\n<\/pre>\n<h1><span id=\"Schema\">Schema<\/span><\/h1>\n<h2><span id=\"Create_Schema\">Create Schema<\/span><\/h2>\n<p>To get created schema scripts :<\/p>\n<pre lang=\"java\">\r\nSchemaExport schemaExport = new SchemaExport();\t\r\n\r\nschemaExport\r\n.setOutputFile( outputFile.getAbsolutePath() )\r\n.create( EnumSet.of(TargetType.SCRIPT) , metadataImplementor);\r\n<\/pre>\n<p>To execute created schema scripts :<\/p>\n<pre lang=\"java\">\r\nSchemaExport schemaExport = new SchemaExport();\r\nschemaExport.create( EnumSet.of(TargetType.DATABASE) , metadataImplementor);\r\nList<?> exceptions = schemaExport.getExceptions();\r\n<\/pre>\n<h2><span id=\"Update_Schema\">Update Schema<\/span><\/h2>\n<p>To get updated schema scripts :<\/p>\n<pre lang=\"java\">\r\nSchemaUpdate schemaUpdate = new SchemaUpdate();\r\n\t\t\r\nschemaUpdate\r\n.setOutputFile(outputFile.getAbsolutePath())\r\n.execute(EnumSet.of(TargetType.SCRIPT) , metadataImplementor);\r\n<\/pre>\n<p>To execute updated schema scripts :<\/p>\n<pre lang=\"java\">\r\nSchemaUpdate schemaUpdate = new SchemaUpdate();\r\nschemaUpdate.execute(EnumSet.of(TargetType.DATABASE) , metadataImplementor);\r\nList<?> exceptions = schemaUpdate.getExceptions();\r\n<\/pre>\n<h2><span id=\"Drop_Schema\">Drop Schema<\/span><\/h2>\n<p>To get droped schema scripts :<\/p>\n<pre lang=\"java\">\r\nSchemaExport schemaExport = new SchemaExport();\t\r\n\r\nschemaExport\r\n.setOutputFile( outputFile.getAbsolutePath() )\r\n.drop( EnumSet.of(TargetType.SCRIPT) , metadataImplementor );\r\n<\/pre>\n<p>To execute droped schema scripts :<\/p>\n<pre lang=\"java\">\r\nSchemaExport schemaExport = new SchemaExport();\r\nschemaExport.drop(EnumSet.of(TargetType.DATABASE) , metadataImplementor);\r\nList<?> exceptions = schemaExport.getExceptions();\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Contents1 Dependencies2 JPA (Java Persistence API)2.1 Create entity2.2 Read entity2.3 Update entity2.4 Delete entity3 Entity relationship3.1 One to One3.2 Many to One3.3 Many to Many4 Schema4.1 Create Schema4.2 Update Schema4.3 Drop Schema Dependencies If you use maven, add this to your pom.xml: org.hibernate hibernate-core ${hibernate.version} JPA (Java Persistence API) Create entity \/\/ begin transaction: session.beginTransaction(); [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1538,"menu_order":6,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1488","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1488"}],"version-history":[{"count":10,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1488\/revisions"}],"predecessor-version":[{"id":1945,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1488\/revisions\/1945"}],"up":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1538"}],"wp:attachment":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}