diff --git a/src/main/resources/Group.hbm.xml b/src/main/resources/Group.hbm.xml index e909116..cc94468 100644 --- a/src/main/resources/Group.hbm.xml +++ b/src/main/resources/Group.hbm.xml @@ -33,7 +33,6 @@ column = "UID" outer-join="auto" /> - diff --git a/src/test/java/hibernateTest/entities/Group.java b/src/test/java/hibernateTest/entities/Group.java index c083306..4735c93 100644 --- a/src/test/java/hibernateTest/entities/Group.java +++ b/src/test/java/hibernateTest/entities/Group.java @@ -1,14 +1,18 @@ //このクラスは仮です package hibernateTest.entities; +import hibernateTest.models.Groups; +import hibernateTest.models.Users; + import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Set; public class Group { private String gId; private String uri, name; - //private ArrayList members; + private Set members = new HashSet<>();//HashSetでいいのかな? //private ArrayList requests; private Set requests; @@ -20,6 +24,7 @@ setgId(gId); setUri(uri); setName(name); + addMember(uId); } public String getgId(){ @@ -66,9 +71,24 @@ requests.add(request); } - public ArrayList getRequestsList(){ - ArrayList list = new ArrayList(getRequests()); - return list; +// public ArrayList getRequestsList(){ +// ArrayList list = new ArrayList(getRequests()); +// return list; +// } + + public void setMembers(Set members) { + this.members = members; + } + + public Set getMembers() { + return members; + } + + public void addMember(String uId){ + //test用 + User user = new User(uId, uId, "http:test", "sa", "hogehoge"); + //User user = Users.getInstance().getUserById(uId); + members.add(user); } diff --git a/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java b/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java index f392f06..538318f 100644 --- a/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java +++ b/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java @@ -28,10 +28,12 @@ import java.util.List; import java.util.Set; +import com.example.cosmos_serversb.resources.UsersRest; import com.sun.org.apache.xerces.internal.util.SynchronizedSymbolTable; import hibernateTest.entities.Event; import hibernateTest.entities.Group; import hibernateTest.entities.Request; +import hibernateTest.entities.User; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.hibernate.Session; @@ -84,11 +86,12 @@ session.save( new Event( "A follow up event", new Date() ) ); session.save( new Group("111", "http://test1", "family", "011" ) ); session.save( new Group("222", "http://test2", "friend", "022" ) ); - Group newGroup = new Group("333", "http://test3", "school", "033" ); + Group newGroup = new Group("333", "http://test3", "school", "033" );//インスタンスを引数に渡すこともできます session.save(newGroup); //インスタンスを引数に渡すこともできます + session.save( new Group("444", "http://test4", "Laboratory", "044" ) );//userの追加を行う session.save( new Request("001", "http://test01", "1999.01.01", "011", "cookie", "1999.04.10", location)); - session.save( new Request("002", "http://test02", "1999.02.02", "033", "milk", "1999.04.10", location)); - session.save( new Request("003", "http://test03", "1999.03.03", "033", "ice", "1999.04.10", location)); + session.save( new Request("002", "http://test02", "1999.02.02", "033", "milk", "1999.04.10", location));//後にリクエストを削除 + session.save( new Request("003", "http://test03", "1999.03.03", "033", "ice", "1999.04.10", location));//後にチョコレートアイスに変更 session.getTransaction().commit(); session.close(); @@ -177,6 +180,32 @@ session.close(); + /*中間テーブル(USER-GROUP)*/ + /*ユーザの追加*/ + session = sessionFactory.openSession(); + session.beginTransaction(); + editGroup = session.load(Group.class, "444"); + if(editGroup != null){ + editGroup.addMember("055"); + editGroup.addMember("066");//後で削除します。 + editGroup.addMember("077"); + + } + session.getTransaction().commit(); + session.close(); + + /*ユーザの削除*/ + session = sessionFactory.openSession(); + session.beginTransaction(); + User deleteUser = session.load(User.class, "066");//参照整合性制約でエラー + if(deleteUser != null){ + session.delete(deleteUser); + } + session.getTransaction().commit(); + session.close(); + + + /*出力*/ /*全件取得と出力*/ session = sessionFactory.openSession(); session.beginTransaction(); @@ -186,27 +215,40 @@ for ( Event event : (List) result ) { System.out.println( "Event (" + event.getDate() + ") : " + event.getTitle() ); } + List groupResult = session.createQuery( "from Group" ).list(); System.out.println("グループテーブル"); for ( Group group : (List) groupResult ) { - System.out.println( "Group (" + group.getgId() + ") : " + group.getUri() + ": " + group.getName()); + Set members = group.getMembers(); + System.out.println( "Group (" + group.getgId() + ") : " + group.getUri() + ": " + group.getName() + " member: "); + for( User user : (Set) members){ + System.out.println(user.getuId() + " "); + } + System.out.println(); } + List requestResult = session.createQuery( "from Request" ).list(); System.out.println("リクエストテーブル"); for ( Request request : (List) requestResult ) { System.out.println( "Request (" + request.getrId() + ") : " + request.getUri() + ": " + request.getProduct()); } + List userResult = session.createQuery( "from User" ).list(); + System.out.println("ユーザテーブル"); + for ( User user : (List) userResult ) { + System.out.println( "User (" + user.getuId() + ") : " + user.getUri()); + } + /*リレーションを持たせた分の出力*/ //Setは要素の順番に意味がないため、出力の順番はrId順ではありません。 Group outGroup = session.load(Group.class, "111"); - List list = outGroup.getRequestsList();//Listとして取り出す。 + Set set = outGroup.getRequests();//Listとして取り出す。 System.out.println("グループID111のリクエスト一覧"); - for ( Request request : (List) list ) { + for ( Request request : (Set) set ) { System.out.println( "rId: " + request.getrId() + " " + request.getUri() + " " + request.getProduct()); } outGroup = session.load(Group.class, "222"); - Set set = outGroup.getRequests();//Setのまま取り出す。 + set = outGroup.getRequests();//Setのまま取り出す。 System.out.println("グループID222のリクエスト一覧"); for ( Request request : (Set) set ) { System.out.println( "rId: " + request.getrId() + " " + request.getUri() + " " + request.getProduct()); @@ -215,4 +257,6 @@ session.getTransaction().commit(); session.close(); } + + } diff --git a/src/test/resources/Group.hbm.xml b/src/test/resources/Group.hbm.xml index 59aa944..ff0376b 100644 --- a/src/test/resources/Group.hbm.xml +++ b/src/test/resources/Group.hbm.xml @@ -21,6 +21,19 @@ + + + + +