diff --git a/src/test/java/hibernateTest/entities/Group.java b/src/test/java/hibernateTest/entities/Group.java index 6eacf5b..84006d1 100644 --- a/src/test/java/hibernateTest/entities/Group.java +++ b/src/test/java/hibernateTest/entities/Group.java @@ -2,12 +2,14 @@ package hibernateTest.entities; import java.util.ArrayList; +import java.util.Set; public class Group { private String gId; private String uri, name; //private ArrayList members; - private ArrayList requests; + //private ArrayList requests; + private Set requests; public Group(){ @@ -51,6 +53,18 @@ return name; } + public Set getRequests(){ + return requests; + } + + public void setRequests(Set requests){ + this.requests = requests; + } + + public void addRequests(Request request){ + requests.add(request); + } + /*メンバー*/ //public ArrayList getMembersList(){ // return null; diff --git a/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java b/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java index e7ac3f7..b601801 100644 --- a/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java +++ b/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java @@ -23,6 +23,7 @@ */ package hibernateTest.models; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -94,11 +95,11 @@ session = sessionFactory.openSession(); session.beginTransaction(); //load()メソッドを用いて取得する方法。 - Request deleteRequest = (Request) session.load(Request.class, "222"); - //データの削除 - if(deleteRequest != null){ - session.delete(deleteRequest); - } +// Request deleteRequest = (Request) session.load(Request.class, "222"); +// //データの削除 +// if(deleteRequest != null){ +// session.delete(deleteRequest); +// } session.getTransaction().commit(); session.close(); @@ -117,6 +118,22 @@ session.getTransaction().commit(); session.close(); + /*リレーション*/ + session = sessionFactory.openSession(); + session.beginTransaction(); + Group editGroup = session.load(Group.class, "111"); + if(editGroup != null){ + //リクエストはsession.save()をする必要がありません。 + Request aditionalrequest1 = new Request("444", "http://test04", "1999.01.01", "011", "cookie", "1999.04.10",011); + Request aditionalrequest2 = new Request("555", "http://test05", "1999.01.01", "011", "cookie", "1999.04.10",011); + editGroup.addRequests(aditionalrequest1); + editGroup.addRequests(aditionalrequest2); + session.update(editGroup); + } + session.getTransaction().commit(); + session.close(); + + /*全件取得と出力*/ session = sessionFactory.openSession(); session.beginTransaction(); @@ -132,6 +149,14 @@ for ( Request request : (List) requestResult ) { System.out.println( "Request (" + request.getrId() + ") : " + request.getUri() + ": " + request.getProduct()); } + + //リレーションを持たせた分の出力 + Group outGroup = session.load(Group.class, "111"); + List list = new ArrayList(outGroup.getRequests()); + for ( Request request : (List) list ) { + System.out.println( "rId" + request.getrId() + " " + request.getUri() ); + } + session.getTransaction().commit(); session.close(); } diff --git a/src/test/resources/Group.hbm.xml b/src/test/resources/Group.hbm.xml index 7a4a298..5f94b49 100644 --- a/src/test/resources/Group.hbm.xml +++ b/src/test/resources/Group.hbm.xml @@ -17,6 +17,22 @@ + + + + + + + + + + + + + + + +