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 f600d03..4508c5d 100644 --- a/src/main/java/com/example/cosmos_serversb/entities/Group.java +++ b/src/main/java/com/example/cosmos_serversb/entities/Group.java @@ -1,13 +1,17 @@ //このクラスは仮です package com.example.cosmos_serversb.entities; +import com.example.cosmos_serversb.models.Users; + import java.util.ArrayList; +import java.util.HashSet; import java.util.Set; public class Group { private String gId; private String uri, name; - private Set members; + private Set members = new HashSet<>();//HashSetでいいのかな? + //private ArrayList requests; private Set requests; @@ -80,22 +84,12 @@ return members; } - /*メンバー*/ - //public ArrayList getMembersList(){ - // return null; - //} - - //public void addMemberByUid(String uId){ - // - // members.add(user); - //} - - //public DeleteResult deleteMember(String uid){ - // members.remove(members.indexOf(uid)); - // return null; - //} - - /*リクエスト*/ + public void addMember(String uId){ + //User user = new User(uId, uId, "http:test", "sa", "hogehoge"); + User user = Users.getInstance().getUserById(uId); + members.add(user); + user.addGroups(this); + } } diff --git a/src/main/java/com/example/cosmos_serversb/entities/User.java b/src/main/java/com/example/cosmos_serversb/entities/User.java index efefb2c..0b9c4bd 100644 --- a/src/main/java/com/example/cosmos_serversb/entities/User.java +++ b/src/main/java/com/example/cosmos_serversb/entities/User.java @@ -1,14 +1,17 @@ package com.example.cosmos_serversb.entities; +import java.util.HashSet; +import java.util.Set; + public class User { public String uId, uri, name, iconUri; public boolean login = true; + public Set groups = new HashSet<>();//HashSetでいいのかな? public User() { } - public User(String name, String uId, String uri, String iconUri) { setuId(uId); setUri(uri); @@ -56,4 +59,18 @@ public void setLogin(boolean login) { this.login = login; } + + public Set getGroups() { + return groups; + } + + public void setGroups(Set groups) { + this.groups = groups; + } + + public void addGroups(Group group){ + //テスト用 + //Group group = Groups.getInstance().getGroupByGid(gId); + groups.add(group); + } } \ No newline at end of file diff --git a/src/main/resources/Group.hbm.xml b/src/main/resources/Group.hbm.xml index cc94468..47bb391 100644 --- a/src/main/resources/Group.hbm.xml +++ b/src/main/resources/Group.hbm.xml @@ -21,18 +21,9 @@ - - + - + diff --git a/src/main/resources/User.hbm.xml b/src/main/resources/User.hbm.xml index 967e4d9..301c7d2 100644 --- a/src/main/resources/User.hbm.xml +++ b/src/main/resources/User.hbm.xml @@ -19,6 +19,15 @@ + + + + \ No newline at end of file diff --git a/src/test/java/hibernateTest/entities/Group.java b/src/test/java/hibernateTest/entities/Group.java index 4735c93..e193cdd 100644 --- a/src/test/java/hibernateTest/entities/Group.java +++ b/src/test/java/hibernateTest/entities/Group.java @@ -89,6 +89,7 @@ User user = new User(uId, uId, "http:test", "sa", "hogehoge"); //User user = Users.getInstance().getUserById(uId); members.add(user); + user.addGroups(this); } @@ -109,19 +110,5 @@ // return list; // } - /*メンバー*/ - //public ArrayList getMembersList(){ - // return null; - //} - - //public void addMemberByUid(String uId){ - // - // members.add(user); - //} - - //public DeleteResult deleteMember(String uid){ - // members.remove(members.indexOf(uid)); - // return null; - //} } diff --git a/src/test/java/hibernateTest/entities/User.java b/src/test/java/hibernateTest/entities/User.java index bfa0d39..b9376c1 100644 --- a/src/test/java/hibernateTest/entities/User.java +++ b/src/test/java/hibernateTest/entities/User.java @@ -1,11 +1,16 @@ package hibernateTest.entities; +import hibernateTest.models.Groups; + import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; public class User { public String uId, uri, name, pw, iconUri; public boolean login = true; + public Set groups = new HashSet<>();//HashSetでいいのかな? public User(){ @@ -36,25 +41,46 @@ public String getName() { return name; } + public void setName(String name) { this.name = name; } + public String getPw() { return pw; } + public void setPw(String pw) { this.pw = pw; } + public String getIconUri() { return iconUri; } + public void setIconUri(String iconUri) { this.iconUri = iconUri; } + public boolean getLogin() { return login; } + public void setLogin(boolean login) { this.login = login; } + + public Set getGroups() { + return groups; + } + + public void setGroups(Set groups) { + this.groups = groups; + } + + public void addGroups(Group group){ + //テスト用 + //Group group = Groups.getInstance().getGroupByGid(gId); + groups.add(group); + } } \ No newline at end of file diff --git a/src/test/java/hibernateTest/models/Groups.java b/src/test/java/hibernateTest/models/Groups.java index 3852f0c..110d243 100644 --- a/src/test/java/hibernateTest/models/Groups.java +++ b/src/test/java/hibernateTest/models/Groups.java @@ -47,7 +47,7 @@ } private Groups(){ - + setUp(); } public static Groups getInstance(){ diff --git a/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java b/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java index 538318f..258e0a3 100644 --- a/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java +++ b/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java @@ -84,6 +84,9 @@ session.beginTransaction(); session.save( new Event( "Our very first event!", new Date() ) ); session.save( new Event( "A follow up event", new Date() ) ); +// session.save( new User("I", "011","http://test1","hoge", "011" ) ); +// session.save( new User("YOU", "022","http://test2","hoge", "011" ) ); +// session.save( new User("HE", "033","http://test3","hoge", "011" ) ); 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" );//インスタンスを引数に渡すこともできます @@ -182,27 +185,26 @@ /*中間テーブル(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 = 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.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(); +// User deleteUser = session.load(User.class, "066");//参照整合性制約でエラー +// if(deleteUser != null){ +// session.delete(deleteUser); +// } +// session.getTransaction().commit(); +// session.close(); /*出力*/ @@ -236,7 +238,12 @@ List userResult = session.createQuery( "from User" ).list(); System.out.println("ユーザテーブル"); for ( User user : (List) userResult ) { + Set groups = user.getGroups(); System.out.println( "User (" + user.getuId() + ") : " + user.getUri()); + for( Group group : (Set) groups){ + System.out.println(group.getgId() + " "); + } + System.out.println(); } /*リレーションを持たせた分の出力*/ diff --git a/src/test/resources/Group.hbm.xml b/src/test/resources/Group.hbm.xml index 00e2bda..f56d58a 100644 --- a/src/test/resources/Group.hbm.xml +++ b/src/test/resources/Group.hbm.xml @@ -27,11 +27,8 @@ inverse = "false" cascade = "all"> - + - diff --git a/src/test/resources/User.hbm.xml b/src/test/resources/User.hbm.xml index d59a58b..5994104 100644 --- a/src/test/resources/User.hbm.xml +++ b/src/test/resources/User.hbm.xml @@ -20,6 +20,14 @@ + + + + \ No newline at end of file