diff --git a/src/main/java/com/example/cosmos_serversb/entities/Group.java b/src/main/java/com/example/cosmos_serversb/entities/Group.java index b1d1dcb..8ef2dee 100644 --- a/src/main/java/com/example/cosmos_serversb/entities/Group.java +++ b/src/main/java/com/example/cosmos_serversb/entities/Group.java @@ -2,12 +2,14 @@ package com.example.cosmos_serversb.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,23 @@ 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 getRequestsList(){ + ArrayList list = new ArrayList(getRequests()); + return list; + } + /*メンバー*/ //public ArrayList getMembersList(){ // return null; diff --git a/src/main/java/com/example/cosmos_serversb/entities/Request.java b/src/main/java/com/example/cosmos_serversb/entities/Request.java index db9799c..4da04c6 100644 --- a/src/main/java/com/example/cosmos_serversb/entities/Request.java +++ b/src/main/java/com/example/cosmos_serversb/entities/Request.java @@ -22,13 +22,14 @@ this.done = false; } - public String getrId() { + private void setrId(String rId){ + this.rId = rId; + } + + public String getrId(){ return rId; } - private void setrId(String rId) { - this.rId = rId; - } private void setUri(String uri){ this.uri = uri; @@ -82,6 +83,10 @@ return done; } + public boolean getDone() { + return done; + } + public void setDone(boolean done) { this.done = done; } diff --git a/src/main/resources/Group.hbm.xml b/src/main/resources/Group.hbm.xml index aac9a9b..a42e69f 100644 --- a/src/main/resources/Group.hbm.xml +++ b/src/main/resources/Group.hbm.xml @@ -17,6 +17,10 @@ + + + + diff --git a/src/test/java/hibernateTest/entities/Request.java b/src/test/java/hibernateTest/entities/Request.java index 7c08d47..281f87b 100644 --- a/src/test/java/hibernateTest/entities/Request.java +++ b/src/test/java/hibernateTest/entities/Request.java @@ -30,7 +30,6 @@ return rId; } - private void setUri(String uri){ this.uri = uri; } diff --git a/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java b/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java index f4889a9..2e802e7 100644 --- a/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java +++ b/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Set; import com.sun.org.apache.xerces.internal.util.SynchronizedSymbolTable; import hibernateTest.entities.Event; @@ -106,15 +107,27 @@ /*データを取得し更新*/ session = sessionFactory.openSession(); session.beginTransaction(); - //createCriteriaを用いて取得する方法。ただし非推奨。 - //http://a4dosanddos.hatenablog.com/entry/2015/03/21/135421 - Criteria criteria = session.createCriteria(Request.class).add(Restrictions.eq("rId", "003")); - Request editRequest = (Request) criteria.uniqueResult(); - //データの更新 - if(editRequest != null) { - editRequest.setProduct("Chocolate ice !!"); - session.update(editRequest); +// //createCriteria()を用いて取得する方法。ただし非推奨。 +// //このメソッドはID以外にも、任意のカラムを指定することができます。(今回はproductが"ice"のものを取り出す) +// //http://a4dosanddos.hatenablog.com/entry/2015/03/21/135421 +// Criteria criteria = session.createCriteria(Request.class).add(Restrictions.eq("product", "ice")); +// Request editRequest = (Request) criteria.uniqueResult(); +// //データの更新 +// if(editRequest != null) { +// editRequest.setProduct("Chocolate ice !!"); +// session.update(editRequest); +// } + + //createCriteria()を用いない方法 + List requestList = session.createQuery( "from Request" ).list(); + for ( Request request : (List) requestList ) { + if(request.getProduct() == "ice"){ + request.setProduct("Chocolate ice !!"); + session.update(request); + break; + } } + session.getTransaction().commit(); session.close(); @@ -124,8 +137,8 @@ session.beginTransaction(); Group editGroup = session.load(Group.class, "111"); if(editGroup != null){ - //リクエストはsession.save()をする必要がありません。 - //後のテスト用に4つのリクエストを追加しています。 + //リクエストはsession.save()で保存する必要がありません。 + //後のテスト用に3つのリクエストを追加しています。 Request aditionalrequest1 = new Request("004", "http://test04", "1999.01.01", "011", "Chocolate cookie", "1999.04.10",011); Request aditionalrequest2 = new Request("005", "http://test05", "1999.01.01", "011", "Banana cookie", "1999.04.10",011); Request aditionalrequest3 = new Request("006", "http://test06", "1999.01.01", "011", "Milk cookie", "1999.04.10",011); @@ -141,8 +154,7 @@ session.beginTransaction(); editGroup = session.load(Group.class, "222"); if(editGroup != null){ - //リクエストはsession.save()をする必要がありません。 - //後のテスト用に4つのリクエストを追加しています。 + //リクエストはsession.save()で保存する必要がありません。 Request aditionalrequest1 = new Request("007", "http://test07", "1999.01.01", "022", "Green Tee", "1999.04.10",011); Request aditionalrequest2 = new Request("008", "http://test08", "1999.01.01", "022", "Apple Tee", "1999.04.10",011); editGroup.addRequests(aditionalrequest1); @@ -167,6 +179,7 @@ /*全件取得と出力*/ session = sessionFactory.openSession(); session.beginTransaction(); + //queryStringには警告が出ます。 List result = session.createQuery( "from Event" ).list(); System.out.println("イベントテーブル"); for ( Event event : (List) result ) { @@ -184,14 +197,19 @@ } /*リレーションを持たせた分の出力*/ - //setは要素の順番に、あまり意味がありません。 + //Setは要素の順番に意味がないため、出力の順番はrId順ではありません。 Group outGroup = session.load(Group.class, "111"); - //List list = new ArrayList(outGroup.getRequests()); - List list = outGroup.getRequestsList(); + List list = outGroup.getRequestsList();//Listとして取り出す。 System.out.println("グループID111のリクエスト一覧"); for ( Request request : (List) list ) { System.out.println( "rId: " + request.getrId() + " " + request.getUri() + " " + request.getProduct()); } + outGroup = session.load(Group.class, "222"); + Set set = outGroup.getRequests();//Setのまま取り出す。 + System.out.println("グループID222のリクエスト一覧"); + for ( Request request : (Set) set ) { + System.out.println( "rId: " + request.getrId() + " " + request.getUri() + " " + request.getProduct()); + } session.getTransaction().commit(); session.close(); diff --git a/src/test/resources/Group.hbm.xml b/src/test/resources/Group.hbm.xml index e60150b..59aa944 100644 --- a/src/test/resources/Group.hbm.xml +++ b/src/test/resources/Group.hbm.xml @@ -18,7 +18,7 @@ - +