{"id":10172,"date":"2018-05-31T16:34:01","date_gmt":"2018-05-31T14:34:01","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=10172"},"modified":"2021-11-22T17:14:10","modified_gmt":"2021-11-22T16:14:10","slug":"one-to-one-mit-java-persistence-api-jpa-2-0-und-spring-boot-ohne-xml","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=10172","title":{"rendered":"One to One mit Java Persistence API (JPA 2.0) und Spring Boot ohne XML"},"content":{"rendered":"<p>Manchmal braucht man eine &#8222;<strong>One to One<\/strong>&#8220; Verbindung zweier BEs mit JPA (Java Persistence API) f\u00fcr Spring Boot (2.0.2) (JEE mit EJB 3.0 ist \u00e4hnlich, nur andere Annotationen).<\/p>\n<p>Z.b. arbeiten ein Arzt in der Regel in einem Krankenhaus. Wenn sie nicht gerade als Beleg\u00e4rzte t\u00e4tig sind. Also &#8222;<strong>One to One<\/strong>&#8222;:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/05\/onetoone.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/05\/onetoone.png\" alt=\"\" width=\"2732\" height=\"2048\" class=\"aligncenter size-full wp-image-10173\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/05\/onetoone.png 2732w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/05\/onetoone-300x225.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/05\/onetoone-768x576.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/05\/onetoone-1024x768.png 1024w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>Hier nun eine Kopiervorlage um diese wiederkehrende Verbindung anzulegen:<!--more--><\/p>\n<p>In <strong>Arzt<\/strong>.java ist folgendes n\u00f6tig:<\/p>\n<pre class=\"lang:java decode:true \" >\r\n\r\nimport javax.persistence.*;\r\n\r\n@Entity\r\n@Table(name = \"arzt\")\r\npublic class Arzt {\r\n\t@Id\r\n\t@GeneratedValue(strategy = GenerationType.IDENTITY)\r\n\t@Column(name = \"arzt_id\")\r\n\tprivate Long id;\r\n\r\n\t@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = \"arzt\")\r\n\tprivate Krankenhaus krankenhaus;\r\n\r\n\/\/...\r\n\r\nprotected Arzt() {\r\n\t\t\/\/ dieser Konstruktor wird nicht f\u00fcr die Objekterzeugung verwendet, nur Bean\r\n\t}\r\n\r\n\/\/ Konstruktor mit Parametern und alle Getter und Setter ...\r\n<\/pre>\n<p>In <strong>Krankenhaus<\/strong>.java ist folgendes n\u00f6tig:<\/p>\n<pre class=\"lang:java decode:true \" >\r\n\r\nimport javax.persistence.*;\r\n\r\n@Entity\r\n@Table(name = \"krankenhaus\")\r\npublic class Krankenhaus {\r\n\t@Id\r\n\t@GeneratedValue(strategy = GenerationType.IDENTITY)\r\n\t@Column(name = \"krankenhaus_id\")\r\n\tprivate Long id;\r\n\r\n\t@OneToOne(fetch = FetchType.LAZY)\r\n\t@JoinColumn(name = \"arzt_id\", nullable = false)\r\n\tprivate Arzt arzt;\r\n\r\n\tprotected Krankenhaus() {\r\n\t\t\/\/ dieser Konstruktor wird nicht f\u00fcr die Objekterzeugung verwendet, nur Bean\r\n\t}\r\n\/\/ Konstruktor mit Parametern und alle Getter und Setter\r\n<\/pre>\n<p>Wer eine <strong>many to many<\/strong> braucht, kann <a href=\"http:\/\/blog.wenzlaff.de\/?p=10167\" rel=\"noopener\" target=\"_blank\">hier<\/a> kopieren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Manchmal braucht man eine &#8222;One to One&#8220; Verbindung zweier BEs mit JPA (Java Persistence API) f\u00fcr Spring Boot (2.0.2) (JEE mit EJB 3.0 ist \u00e4hnlich, nur andere Annotationen). Z.b. arbeiten ein Arzt in der Regel in einem Krankenhaus. Wenn sie nicht gerade als Beleg\u00e4rzte t\u00e4tig sind. Also &#8222;One to One&#8222;: Hier nun eine Kopiervorlage um &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=10172\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eOne to One mit Java Persistence API (JPA 2.0) und Spring Boot ohne XML\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,5,79],"tags":[3277,2150,2178,3274,3276,3275],"class_list":["post-10172","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-java","category-programmierung","tag-eins-zu-eins","tag-hibernate","tag-java","tag-one-to-one","tag-one2one","tag-onetoone"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/10172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10172"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/10172\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10172"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}