- switches json's back-managed references on every attribute in each exportable class

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4496 8810af33-2d31-482b-a856-94f89814c4df
ccm-docs
tosmers 2016-12-20 19:27:21 +00:00
parent 58eebf4513
commit 16b312ed41
14 changed files with 36 additions and 34 deletions

View File

@ -85,7 +85,7 @@ public class Categorization implements Serializable, Portable {
*/ */
@ManyToOne @ManyToOne
@JoinColumn(name = "CATEGORY_ID") @JoinColumn(name = "CATEGORY_ID")
@JsonManagedReference(value = "categorization-category") @JsonBackReference(value = "category-categorization")
private Category category; private Category category;
/** /**
@ -93,7 +93,7 @@ public class Categorization implements Serializable, Portable {
*/ */
@ManyToOne @ManyToOne
@JoinColumn(name = "OBJECT_ID") @JoinColumn(name = "OBJECT_ID")
@JsonManagedReference(value = "categorization-object") @JsonBackReference(value = "object-categorization")
private CcmObject categorizedObject; private CcmObject categorizedObject;
/** /**

View File

@ -182,7 +182,7 @@ public class Category extends CcmObject implements InheritsPermissions,
*/ */
@OneToMany(mappedBy = "category") @OneToMany(mappedBy = "category")
@XmlElementWrapper(name = "objects", namespace = CAT_XML_NS) @XmlElementWrapper(name = "objects", namespace = CAT_XML_NS)
@JsonBackReference(value = "categorization-category") @JsonManagedReference(value = "category-categorization")
private List<Categorization> objects; private List<Categorization> objects;
/** /**
@ -191,7 +191,7 @@ public class Category extends CcmObject implements InheritsPermissions,
@OneToMany(mappedBy = "parentCategory") @OneToMany(mappedBy = "parentCategory")
@XmlElementWrapper(name = "subcategories", namespace = CAT_XML_NS) @XmlElementWrapper(name = "subcategories", namespace = CAT_XML_NS)
@XmlElement(name = "category") @XmlElement(name = "category")
@JsonBackReference(value = "parentcategory-subcategory") @JsonManagedReference(value = "subcategory-parentcategory")
private List<Category> subCategories; private List<Category> subCategories;
/** /**
@ -200,7 +200,7 @@ public class Category extends CcmObject implements InheritsPermissions,
*/ */
@ManyToOne @ManyToOne
@JoinColumn(name = "PARENT_CATEGORY_ID") @JoinColumn(name = "PARENT_CATEGORY_ID")
@JsonManagedReference(value = "parentcategory-subcategory") @JsonBackReference(value = "subcategory-parentcategory")
private Category parentCategory; private Category parentCategory;
/** /**

View File

@ -21,6 +21,8 @@ package org.libreccm.core;
import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonManagedReference;
import org.hibernate.envers.Audited; import org.hibernate.envers.Audited;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.IndexedEmbedded;
import org.libreccm.categorization.Categorization; import org.libreccm.categorization.Categorization;
import org.libreccm.categorization.Category; import org.libreccm.categorization.Category;
import org.libreccm.categorization.CategoryManager; import org.libreccm.categorization.CategoryManager;
@ -41,7 +43,6 @@ import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -51,10 +52,6 @@ import java.util.Objects;
import static org.libreccm.core.CoreConstants.CORE_XML_NS; import static org.libreccm.core.CoreConstants.CORE_XML_NS;
import static org.libreccm.core.CoreConstants.DB_SCHEMA; import static org.libreccm.core.CoreConstants.DB_SCHEMA;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.FieldBridge;
import org.hibernate.search.annotations.IndexedEmbedded;
/** /**
* Root class of all entities in LibreCCM which need categorisation and * Root class of all entities in LibreCCM which need categorisation and
* permission services. * permission services.
@ -125,7 +122,7 @@ public class CcmObject implements Identifiable, Serializable {
@IndexedEmbedded(includePaths = {"grantedPrivilege", "grantee.name"}) @IndexedEmbedded(includePaths = {"grantedPrivilege", "grantee.name"})
@XmlElementWrapper(name = "permissions", namespace = CORE_XML_NS) @XmlElementWrapper(name = "permissions", namespace = CORE_XML_NS)
@XmlElement(name = "permission", namespace = CORE_XML_NS) @XmlElement(name = "permission", namespace = CORE_XML_NS)
@JsonBackReference(value = "permission-object") @JsonManagedReference(value = "object-permission")
private List<Permission> permissions; private List<Permission> permissions;
/** /**
@ -134,7 +131,7 @@ public class CcmObject implements Identifiable, Serializable {
@OneToMany(mappedBy = "categorizedObject") @OneToMany(mappedBy = "categorizedObject")
@XmlElementWrapper(name = "categories", namespace = CORE_XML_NS) @XmlElementWrapper(name = "categories", namespace = CORE_XML_NS)
@XmlElement(name = "category", namespace = CORE_XML_NS) @XmlElement(name = "category", namespace = CORE_XML_NS)
@JsonBackReference(value = "categorization-object") @JsonManagedReference(value = "object-categorization")
private List<Categorization> categories; private List<Categorization> categories;
public CcmObject() { public CcmObject() {

View File

@ -19,6 +19,7 @@
package org.libreccm.security; package org.libreccm.security;
import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import org.libreccm.core.DefaultEntityGraph; import org.libreccm.core.DefaultEntityGraph;
import org.libreccm.portation.Portable; import org.libreccm.portation.Portable;
@ -101,7 +102,7 @@ public class Group extends Party implements Serializable, Portable {
@OneToMany(mappedBy = "group") @OneToMany(mappedBy = "group")
@XmlElementWrapper(name = "group-memberships", namespace = CORE_XML_NS) @XmlElementWrapper(name = "group-memberships", namespace = CORE_XML_NS)
@XmlElement(name = "group-membership", namespace = CORE_XML_NS) @XmlElement(name = "group-membership", namespace = CORE_XML_NS)
@JsonBackReference(value = "groupmembership-group") @JsonManagedReference(value = "group-groupmembership")
private Set<GroupMembership> memberships = new HashSet<>(); private Set<GroupMembership> memberships = new HashSet<>();
public Group() { public Group() {

View File

@ -67,13 +67,13 @@ public class GroupMembership implements Serializable, Portable {
@ManyToOne @ManyToOne
@JoinColumn(name = "GROUP_ID") @JoinColumn(name = "GROUP_ID")
@XmlTransient @XmlTransient
@JsonManagedReference(value = "groupmembership-group") @JsonBackReference(value = "group-groupmembership")
private Group group; private Group group;
@ManyToOne @ManyToOne
@JoinColumn(name = "MEMBER_ID") @JoinColumn(name = "MEMBER_ID")
@XmlTransient @XmlTransient
@JsonManagedReference(value = "groupmembership-user") @JsonBackReference(value = "user-groupmembership")
private User member; private User member;
public long getMembershipId() { public long getMembershipId() {

View File

@ -19,6 +19,7 @@
package org.libreccm.security; package org.libreccm.security;
import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import org.libreccm.core.DefaultEntityGraph; import org.libreccm.core.DefaultEntityGraph;
import javax.persistence.Column; import javax.persistence.Column;
@ -98,7 +99,7 @@ public class Party implements Serializable {
@OneToMany(mappedBy = "member") @OneToMany(mappedBy = "member")
@XmlElementWrapper(name = "role-memberships", namespace = CORE_XML_NS) @XmlElementWrapper(name = "role-memberships", namespace = CORE_XML_NS)
@XmlElement(name = "role-membership", namespace = CORE_XML_NS) @XmlElement(name = "role-membership", namespace = CORE_XML_NS)
@JsonBackReference(value = "rolemembership-party") @JsonManagedReference(value = "party-rolemembership")
private Set<RoleMembership> roleMemberships = new HashSet<>(); private Set<RoleMembership> roleMemberships = new HashSet<>();
protected Party() { protected Party() {

View File

@ -20,6 +20,9 @@ package org.libreccm.security;
import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonManagedReference;
import org.hibernate.search.annotations.ContainedIn;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.IndexedEmbedded;
import org.libreccm.core.CcmObject; import org.libreccm.core.CcmObject;
import org.libreccm.portation.Portable; import org.libreccm.portation.Portable;
@ -42,9 +45,6 @@ import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.Objects; import java.util.Objects;
import org.hibernate.search.annotations.ContainedIn;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.IndexedEmbedded;
import static org.libreccm.core.CoreConstants.CORE_XML_NS; import static org.libreccm.core.CoreConstants.CORE_XML_NS;
import static org.libreccm.core.CoreConstants.DB_SCHEMA; import static org.libreccm.core.CoreConstants.DB_SCHEMA;
@ -103,7 +103,7 @@ public class Permission implements Serializable, Portable {
@ManyToOne @ManyToOne
@JoinColumn(name = "OBJECT_ID") @JoinColumn(name = "OBJECT_ID")
@ContainedIn @ContainedIn
@JsonManagedReference(value = "permission-object") @JsonBackReference(value = "object-permission")
private CcmObject object; private CcmObject object;
/** /**
@ -112,7 +112,7 @@ public class Permission implements Serializable, Portable {
@ManyToOne @ManyToOne
@IndexedEmbedded @IndexedEmbedded
@JoinColumn(name = "GRANTEE_ID") @JoinColumn(name = "GRANTEE_ID")
@JsonManagedReference(value = "permission-role") @JsonBackReference(value = "role-permission")
private Role grantee; private Role grantee;
/** /**

View File

@ -153,7 +153,7 @@ public class Role implements Serializable, Portable {
@OneToMany(mappedBy = "role") @OneToMany(mappedBy = "role")
@XmlElementWrapper(name = "role-memberships", namespace = CORE_XML_NS) @XmlElementWrapper(name = "role-memberships", namespace = CORE_XML_NS)
@XmlElement(name = "role-membership", namespace = CORE_XML_NS) @XmlElement(name = "role-membership", namespace = CORE_XML_NS)
@JsonBackReference(value = "rolemembership-role") @JsonManagedReference(value = "role-rolemembership")
private Set<RoleMembership> memberships = new HashSet<>(); private Set<RoleMembership> memberships = new HashSet<>();
/** /**
@ -162,11 +162,11 @@ public class Role implements Serializable, Portable {
@OneToMany(mappedBy = "grantee") @OneToMany(mappedBy = "grantee")
@XmlElementWrapper(name = "permissions", namespace = CORE_XML_NS) @XmlElementWrapper(name = "permissions", namespace = CORE_XML_NS)
@XmlElement(name = "permission", namespace = CORE_XML_NS) @XmlElement(name = "permission", namespace = CORE_XML_NS)
@JsonBackReference(value = "permission-role") @JsonManagedReference(value = "role-permission")
private List<Permission> permissions = new ArrayList<>(); private List<Permission> permissions = new ArrayList<>();
@OneToMany(mappedBy = "role") @OneToMany(mappedBy = "role")
@JsonBackReference(value = "taskassignment-role") @JsonManagedReference(value = "role-taskassignment")
private List<TaskAssignment> assignedTasks; private List<TaskAssignment> assignedTasks;
/** /**

View File

@ -68,13 +68,13 @@ public class RoleMembership implements Serializable, Portable {
@ManyToOne @ManyToOne
@JoinColumn(name = "ROLE_ID") @JoinColumn(name = "ROLE_ID")
@XmlTransient @XmlTransient
@JsonManagedReference(value = "rolemembership-role") @JsonBackReference(value = "role-rolemembership")
private Role role; private Role role;
@ManyToOne @ManyToOne
@JoinColumn(name = "MEMBER_ID") @JoinColumn(name = "MEMBER_ID")
@XmlTransient @XmlTransient
@JsonManagedReference(value = "rolemembership-party") @JsonBackReference(value = "party-rolemembership")
private Party member; private Party member;
public long getMembershipId() { public long getMembershipId() {

View File

@ -19,6 +19,7 @@
package org.libreccm.security; package org.libreccm.security;
import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import org.libreccm.core.DefaultEntityGraph; import org.libreccm.core.DefaultEntityGraph;
import org.libreccm.core.EmailAddress; import org.libreccm.core.EmailAddress;
import org.libreccm.portation.Portable; import org.libreccm.portation.Portable;
@ -204,7 +205,7 @@ public class User extends Party implements Serializable, Portable {
@OneToMany(mappedBy = "member") @OneToMany(mappedBy = "member")
@XmlElementWrapper(name = "group-memberships", namespace = CORE_XML_NS) @XmlElementWrapper(name = "group-memberships", namespace = CORE_XML_NS)
@XmlElement(name = "group-membership", namespace = CORE_XML_NS) @XmlElement(name = "group-membership", namespace = CORE_XML_NS)
@JsonBackReference(value = "groupmembership-user") @JsonManagedReference(value = "user-groupmembership")
private Set<GroupMembership> groupMemberships = new HashSet<>(); private Set<GroupMembership> groupMemberships = new HashSet<>();
protected User() { protected User() {

View File

@ -19,6 +19,7 @@
package org.libreccm.workflow; package org.libreccm.workflow;
import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import org.libreccm.portation.Portable; import org.libreccm.portation.Portable;
import org.libreccm.security.User; import org.libreccm.security.User;
@ -129,7 +130,7 @@ public class AssignableTask extends Task implements Serializable, Portable {
* The roles to which task is assigned. * The roles to which task is assigned.
*/ */
@OneToMany(mappedBy = "task") @OneToMany(mappedBy = "task")
@JsonBackReference(value = "taskassignment-assignabletask") @JsonManagedReference(value = "assignabletask-taskassignment")
private List<TaskAssignment> assignments; private List<TaskAssignment> assignments;
public AssignableTask() { public AssignableTask() {

View File

@ -159,14 +159,14 @@ public class Task implements Identifiable, Serializable {
*/ */
@ManyToOne @ManyToOne
@JoinColumn(name = "WORKFLOW_ID") @JoinColumn(name = "WORKFLOW_ID")
@JsonManagedReference(value = "task-workflow") @JsonBackReference(value = "workflow-task")
private Workflow workflow; private Workflow workflow;
/** /**
* Tasks which the depends of this task. * Tasks which the depends of this task.
*/ */
@ManyToMany(mappedBy = "dependsOn") @ManyToMany(mappedBy = "dependsOn")
@JsonBackReference(value = "dependson-dependent") @JsonManagedReference(value = "dependent-dependson")
private List<Task> dependentTasks; private List<Task> dependentTasks;
/** /**
@ -179,7 +179,7 @@ public class Task implements Identifiable, Serializable {
@JoinColumn(name = "DEPENDS_ON_TASK_ID")}, @JoinColumn(name = "DEPENDS_ON_TASK_ID")},
inverseJoinColumns = { inverseJoinColumns = {
@JoinColumn(name = "DEPENDENT_TASK_ID")}) @JoinColumn(name = "DEPENDENT_TASK_ID")})
@JsonManagedReference(value = "dependson-dependent") @JsonBackReference(value = "dependent-dependson")
private List<Task> dependsOn; private List<Task> dependsOn;
/** /**

View File

@ -60,7 +60,7 @@ public class TaskAssignment implements Serializable, Portable {
*/ */
@ManyToOne @ManyToOne
@JoinColumn(name = "TASK_ID") @JoinColumn(name = "TASK_ID")
@JsonManagedReference(value = "taskassignment-assignabletask") @JsonBackReference(value = "assignabletask-taskassignment")
private AssignableTask task; private AssignableTask task;
/** /**
@ -68,7 +68,7 @@ public class TaskAssignment implements Serializable, Portable {
*/ */
@ManyToOne @ManyToOne
@JoinColumn(name = "ROLE_ID") @JoinColumn(name = "ROLE_ID")
@JsonManagedReference(value = "taskassignment-role") @JsonBackReference(value = "role-taskassignment")
private Role role; private Role role;
public long getTaskAssignmentId() { public long getTaskAssignmentId() {

View File

@ -21,6 +21,7 @@ package org.libreccm.workflow;
import static org.libreccm.core.CoreConstants.*; import static org.libreccm.core.CoreConstants.*;
import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import org.libreccm.core.CcmObject; import org.libreccm.core.CcmObject;
import org.libreccm.l10n.LocalizedString; import org.libreccm.l10n.LocalizedString;
@ -152,7 +153,7 @@ public class Workflow implements Identifiable, Serializable, Portable {
* The tasks belonging to this workflow. * The tasks belonging to this workflow.
*/ */
@OneToMany(mappedBy = "workflow") @OneToMany(mappedBy = "workflow")
@JsonBackReference(value = "task-workflow") @JsonManagedReference(value = "workflow-task")
private List<Task> tasks; private List<Task> tasks;
public Workflow() { public Workflow() {