From 3d0c6e4865d4a0ddd764da533a327faf76e0cb32 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Fri, 10 Jan 2014 18:50:52 +0000
Subject: [PATCH] #394 feature - Catalog module finished in beta - Security and Error management are not completed

---
 securis/src/main/java/net/curisit/securis/db/Organization.java |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/db/Organization.java b/securis/src/main/java/net/curisit/securis/db/Organization.java
index 04ac638..fd107b9 100644
--- a/securis/src/main/java/net/curisit/securis/db/Organization.java
+++ b/securis/src/main/java/net/curisit/securis/db/Organization.java
@@ -4,7 +4,9 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Set;
 
+import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
@@ -15,6 +17,7 @@
 import javax.persistence.ManyToOne;
 import javax.persistence.NamedQueries;
 import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
 import javax.persistence.Table;
 
 import org.codehaus.jackson.annotate.JsonAutoDetect;
@@ -33,7 +36,7 @@
 @Entity
 @Table(name = "organization")
 @NamedQueries(
-	{ @NamedQuery(name = "list-organizations", query = "SELECT o FROM Organization o") })
+	{ @NamedQuery(name = "list-organizations", query = "SELECT o FROM Organization o"), @NamedQuery(name = "find-children-org", query = "SELECT o FROM Organization o where o.parentOrganization = :parentOrganization") })
 public class Organization implements Serializable {
 
 	@SuppressWarnings("unused")
@@ -54,7 +57,7 @@
 
 	@JsonIgnore
 	// We don't include the users to limit the size of each row a the listing
-	@ManyToMany
+	@ManyToMany(cascade = CascadeType.REMOVE)
 	@JoinTable(name = "user_organization", //
 	joinColumns =
 		{ @JoinColumn(name = "organization_id", referencedColumnName = "id") }, //
@@ -67,6 +70,11 @@
 	@ManyToOne
 	@JoinColumn(name = "org_parent_id")
 	private Organization parentOrganization;
+
+	@JsonIgnore
+	// We don't include the users to limit the size of each row a the listing
+	@OneToMany(mappedBy = "parentOrganization")
+	private Set<Organization> childOrganizations;
 
 	public int getId() {
 		return id;
@@ -163,4 +171,12 @@
 		return ids;
 	}
 
+	public Set<Organization> getChildOrganizations() {
+		return childOrganizations;
+	}
+
+	public void setChildOrganizations(Set<Organization> childOrganizations) {
+		this.childOrganizations = childOrganizations;
+	}
+
 }

--
Gitblit v1.3.2