diff --git a/src/main/resources/Request.hbm.xml b/src/main/resources/Request.hbm.xml
index b08773b..514de7c 100644
--- a/src/main/resources/Request.hbm.xml
+++ b/src/main/resources/Request.hbm.xml
@@ -12,7 +12,7 @@
-
+
diff --git a/src/test/java/hibernateTest/entities/Group.java b/src/test/java/hibernateTest/entities/Group.java
index 6eacf5b..c083306 100644
--- a/src/test/java/hibernateTest/entities/Group.java
+++ b/src/test/java/hibernateTest/entities/Group.java
@@ -2,12 +2,15 @@
package hibernateTest.entities;
import java.util.ArrayList;
+import java.util.List;
+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 +54,41 @@
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 List getRequests(){
+// return requests;
+// }
+//
+// public void setRequests(List 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;
@@ -65,8 +103,5 @@
// members.remove(members.indexOf(uid));
// return null;
//}
-
- /*リクエスト*/
-
}
diff --git a/src/test/java/hibernateTest/entities/Request.java b/src/test/java/hibernateTest/entities/Request.java
index 1c84ea4..7c08d47 100644
--- a/src/test/java/hibernateTest/entities/Request.java
+++ b/src/test/java/hibernateTest/entities/Request.java
@@ -87,7 +87,6 @@
return done;
}
-
public void setDone(boolean done) {
this.done = done;
}
diff --git a/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java b/src/test/java/hibernateTest/models/NativeApiIllustrationTest.java
index e7ac3f7..f4889a9 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;
@@ -83,9 +84,9 @@
session.save( new Group("222", "http://test2", "friend", "022" ) );
Group newGroup = new Group("333", "http://test3", "school", "033" );
session.save(newGroup); //インスタンスを引数に渡すこともできます
- session.save( new Request("111", "http://test01", "1999.01.01", "011", "cookie", "1999.04.10",011));
- session.save( new Request("222", "http://test02", "1999.02.02", "033", "milk", "1999.04.10",011));
- session.save( new Request("333", "http://test03", "1999.03.03", "033", "ice", "1999.04.10",011));
+ session.save( new Request("001", "http://test01", "1999.01.01", "011", "cookie", "1999.04.10",011));
+ session.save( new Request("002", "http://test02", "1999.02.02", "033", "milk", "1999.04.10",011));
+ session.save( new Request("003", "http://test03", "1999.03.03", "033", "ice", "1999.04.10",011));
session.getTransaction().commit();
session.close();
@@ -94,7 +95,7 @@
session = sessionFactory.openSession();
session.beginTransaction();
//load()メソッドを用いて取得する方法。
- Request deleteRequest = (Request) session.load(Request.class, "222");
+ Request deleteRequest = (Request) session.load(Request.class, "002");
//データの削除
if(deleteRequest != null){
session.delete(deleteRequest);
@@ -107,7 +108,7 @@
session.beginTransaction();
//createCriteriaを用いて取得する方法。ただし非推奨。
//http://a4dosanddos.hatenablog.com/entry/2015/03/21/135421
- Criteria criteria = session.createCriteria(Request.class).add(Restrictions.eq("rId", "333"));
+ Criteria criteria = session.createCriteria(Request.class).add(Restrictions.eq("rId", "003"));
Request editRequest = (Request) criteria.uniqueResult();
//データの更新
if(editRequest != null) {
@@ -117,21 +118,81 @@
session.getTransaction().commit();
session.close();
+ /*リレーション*/
+ /*リクエストの追加*/
+ session = sessionFactory.openSession();
+ session.beginTransaction();
+ Group editGroup = session.load(Group.class, "111");
+ if(editGroup != null){
+ //リクエストはsession.save()をする必要がありません。
+ //後のテスト用に4つのリクエストを追加しています。
+ 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);
+ editGroup.addRequests(aditionalrequest1);
+ editGroup.addRequests(aditionalrequest2);
+ editGroup.addRequests(aditionalrequest3);
+ session.update(editGroup);
+ }
+ session.getTransaction().commit();
+ session.close();
+
+ session = sessionFactory.openSession();
+ session.beginTransaction();
+ editGroup = session.load(Group.class, "222");
+ if(editGroup != null){
+ //リクエストはsession.save()をする必要がありません。
+ //後のテスト用に4つのリクエストを追加しています。
+ 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);
+ editGroup.addRequests(aditionalrequest2);
+ session.update(editGroup);
+ }
+ session.getTransaction().commit();
+ session.close();
+
+ /*リレーションを持ったリクエストの削除 (RIDを指定してリクエストを取得し、その後削除)*/
+ session = sessionFactory.openSession();
+ session.beginTransaction();
+ deleteRequest = (Request) session.load(Request.class, "005");//Banana cookie
+ //データの削除
+ if(deleteRequest != null){
+ session.delete(deleteRequest);
+ }
+ session.getTransaction().commit();
+ session.close();
+
+
/*全件取得と出力*/
session = sessionFactory.openSession();
session.beginTransaction();
List result = session.createQuery( "from Event" ).list();
+ System.out.println("イベントテーブル");
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());
}
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());
}
+
+ /*リレーションを持たせた分の出力*/
+ //setは要素の順番に、あまり意味がありません。
+ Group outGroup = session.load(Group.class, "111");
+ //List list = new ArrayList(outGroup.getRequests());
+ List list = outGroup.getRequestsList();
+ System.out.println("グループID111のリクエスト一覧");
+ for ( Request request : (List) list ) {
+ 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 7a4a298..e60150b 100644
--- a/src/test/resources/Group.hbm.xml
+++ b/src/test/resources/Group.hbm.xml
@@ -17,6 +17,10 @@
+
+
+
+
diff --git a/src/test/resources/Request.hbm.xml b/src/test/resources/Request.hbm.xml
index d41866b..60b2f63 100644
--- a/src/test/resources/Request.hbm.xml
+++ b/src/test/resources/Request.hbm.xml
@@ -12,7 +12,7 @@
-
+