diff --git a/.idea/misc.xml b/.idea/misc.xml index a2598f9..4ff842e 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,10 @@ + + + + + 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 4c98291..47ac114 100644 --- a/src/main/java/com/example/cosmos_serversb/entities/Group.java +++ b/src/main/java/com/example/cosmos_serversb/entities/Group.java @@ -1,7 +1,10 @@ //このクラスは仮です package com.example.cosmos_serversb.entities; +import com.example.cosmos_serversb.models.SessionManager; import com.example.cosmos_serversb.models.Users; +import com.sun.corba.se.impl.orbutil.graph.Graph; +import org.hibernate.Session; import java.util.ArrayList; import java.util.HashSet; @@ -11,8 +14,6 @@ private String gId; private String uri, name; private Set members = new HashSet<>();//HashSetでいいのかな? - - //private ArrayList requests; private Set requests; public Group(){ @@ -85,10 +86,15 @@ } public void addMember(String uId){ - // User user = new User(uId, uId, "http:test", "hogehoge"); User user = Users.getInstance().getUserById(uId); - members.add(user); -// user.addGroups(this); + if(user != null) { + members.add(user); + user.addGroups(this); + Session session = SessionManager.getInstance().getSession(); + session.update(user); + }else{ + //例外処理 + } } } 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 0b9c4bd..d2dd33f 100644 --- a/src/main/java/com/example/cosmos_serversb/entities/User.java +++ b/src/main/java/com/example/cosmos_serversb/entities/User.java @@ -11,7 +11,6 @@ public User() { } - public User(String name, String uId, String uri, String iconUri) { setuId(uId); setUri(uri); diff --git a/src/main/java/com/example/cosmos_serversb/models/Groups.java b/src/main/java/com/example/cosmos_serversb/models/Groups.java index a4b330c..8aacdcd 100644 --- a/src/main/java/com/example/cosmos_serversb/models/Groups.java +++ b/src/main/java/com/example/cosmos_serversb/models/Groups.java @@ -18,7 +18,7 @@ private static String AppName = "cosmos"; private Groups(){ - sessionFactory = SessionFactoryManager.getInstance().getSessionFactory(); + //sessionFactory = SessionFactoryManager.getInstance().getSessionFactory(); } public static Groups getInstance(){ @@ -84,7 +84,13 @@ } public static HashMap addMember(String gId, String uId){ - return null; + Session session = SessionManager.getInstance().getSession(); + Group editGroup = session.load(Group.class, gId); + if(editGroup != null) { + editGroup.addMember(uId); + session.update(editGroup); + } + return null;//HashMapへの変更が必要 } public static HashMap deleteMember(String gId, String uId){ diff --git a/src/main/java/com/example/cosmos_serversb/models/Users.java b/src/main/java/com/example/cosmos_serversb/models/Users.java index 81597c3..b29ee81 100644 --- a/src/main/java/com/example/cosmos_serversb/models/Users.java +++ b/src/main/java/com/example/cosmos_serversb/models/Users.java @@ -5,8 +5,6 @@ import javax.inject.Singleton; import com.example.cosmos_serversb.entities.*; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import org.hibernate.Session; import org.hibernate.SessionFactory; @@ -57,12 +55,6 @@ createToken(uId); User testUser = new User(name, uId, uri, iconImage);//名前、uId、ユーザーuri、パスワード、アイコンイメージを保存 session.save(testUser); - //出力 - /* - List userResult = session.createQuery( "from User" ).list(); - for ( User user : (List) userResult ) { - System.out.println( "UserId (" + user.getuId() + ") : " + user.getUri() + ": " + user.getName()); - }*/ return testUser; } @@ -91,10 +83,8 @@ for ( User user : (List) usersList ) { if (user.getuId().equals(uId)) { User findUser = (User) session.load(User.class, uId); +// System.out.println(mapper.valueToTree(findUser).toString()); return findUser; -// System.out.println( "name: " + user.getName() + "iconUri : " + user.getIconUri()); - }else{ - break; } } //一致しない場合は返す必要がないのでnull diff --git a/src/main/java/com/example/cosmos_serversb/models/UsersMain.java b/src/main/java/com/example/cosmos_serversb/models/UsersMain.java index ea61319..d348a90 100644 --- a/src/main/java/com/example/cosmos_serversb/models/UsersMain.java +++ b/src/main/java/com/example/cosmos_serversb/models/UsersMain.java @@ -3,9 +3,11 @@ //このメインクラスを実行すると、Hibernateのテストが行えます。 public class UsersMain { public static void main(String args[]){ - Users.getInstance().createUser("test1","test1","http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); + /* + Users.createUser("test1","test1","http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); Users.login("1234","test1"); - //Users.setUser("1234","test3","test3","http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); - // Users.getUserById("1234"); + Users.setUser("1234","test3","test3","http://localhost:8080/iconImage/"); + Users.getUserById("1234"); + */ } } diff --git a/src/main/java/com/example/cosmos_serversb/resources/GroupsRest.java b/src/main/java/com/example/cosmos_serversb/resources/GroupsRest.java index 2714d23..864698f 100644 --- a/src/main/java/com/example/cosmos_serversb/resources/GroupsRest.java +++ b/src/main/java/com/example/cosmos_serversb/resources/GroupsRest.java @@ -1,5 +1,7 @@ package com.example.cosmos_serversb.resources; +import com.example.cosmos_serversb.entities.Group; +import com.example.cosmos_serversb.entities.User; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.hibernate.Session; @@ -9,6 +11,8 @@ import com.example.cosmos_serversb.models.*; +import java.io.IOException; + @Component @Path("/groups") public class GroupsRest { @@ -22,11 +26,27 @@ } @POST - public String createGroup(@FormParam("name") String name, @FormParam("uId") String uId, @FormParam("token") String token) throws JsonProcessingException{ + public String createGroup(@FormParam("name") String name, @FormParam("uId") String uId, @FormParam("token") String token) throws IOException { + //グループの作成 SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); - String json = mapper.writeValueAsString(Groups.getInstance().createGroup(name, uId)); + Group group = Groups.getInstance().createGroup(name, uId); + SessionManager.getInstance().closeSession();//一度データベースを更新。 + + //グループにメンバーの追加 + SessionManager.getInstance().getSession(); + Groups.addMember(group.getgId(), uId); SessionManager.getInstance().closeSession(); + String json = mapper.writeValueAsString(group);//このJSONには、グループを作成したユーザの情報が含まれていません。 + + //以下が思うように動かない。 +// Session session = SessionManager.getInstance().getSession(); +// Group editedGroup = (Group) session.load(Group.class, group.getgId());//editedGroupの値がおかしい? +// String json = mapper.writeValueAsString(editedGroup); +// Group tmpGroup = new Group(session.load(Group.class, group.getgId())); +// String json = mapper.writeValueAsString( tmpGroup ); +// SessionManager.getInstance().closeSession(); + return json; } diff --git a/src/main/java/com/example/cosmos_serversb/resources/UsersRest.java b/src/main/java/com/example/cosmos_serversb/resources/UsersRest.java index a117ab5..99362f6 100644 --- a/src/main/java/com/example/cosmos_serversb/resources/UsersRest.java +++ b/src/main/java/com/example/cosmos_serversb/resources/UsersRest.java @@ -14,11 +14,16 @@ @Path("/users") public class UsersRest { - static interface RemoveuIdAndUri { - @JsonIgnore String getUId(); + public interface RemoveuIdAndUri { + @JsonIgnore String getuId(); @JsonIgnore String getUri(); } + public interface RemoveNameAndIconUri { + @JsonIgnore String getName(); + @JsonIgnore String getIconUri(); + } + @POST public String createUsers(@FormParam("name") String name, @FormParam("pw") String pw, @FormParam("iconImage") String iconImage) throws JsonProcessingException { SessionManager.getInstance().getSession(); @@ -34,8 +39,8 @@ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Users.getInstance().getUserById(uId)); + mapper.addMixIn(json.getClass(),RemoveuIdAndUri.class); SessionManager.getInstance().closeSession(); - return json; } @@ -45,8 +50,8 @@ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Users.getInstance().setUser(uId, name, pw, iconImage)); + mapper.addMixIn(json.getClass(),RemoveNameAndIconUri.class); SessionManager.getInstance().closeSession(); - return json; } diff --git a/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java b/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java index c997103..50e4f9f 100644 --- a/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java +++ b/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java @@ -179,6 +179,7 @@ session = sessionFactory.openSession(); session.beginTransaction(); deleteRequest = (Request) session.load(Request.class, "005");//Banana cookie + System.out.println(deleteRequest.getUri()); //データの削除 if(deleteRequest != null){ session.delete(deleteRequest);