From 133c44e32e1401df4e889f5d9b4157ebafbb5f15 Mon Sep 17 00:00:00 2001 From: Maxime Dagnicourt Date: Tue, 22 Jan 2008 10:15:17 +0000 Subject: [PATCH] --- .../ejbModule/org/yacos/core/users/Role.java | 14 +++++++---- .../org/yacos/core/users/RolePK.java | 25 +++++++++++++------ .../ejbModule/org/yacos/core/users/User.java | 13 ++++++---- 3 files changed, 35 insertions(+), 17 deletions(-) diff --git a/YACOSCore/ejbModule/org/yacos/core/users/Role.java b/YACOSCore/ejbModule/org/yacos/core/users/Role.java index 320be23..d5a5b5a 100644 --- a/YACOSCore/ejbModule/org/yacos/core/users/Role.java +++ b/YACOSCore/ejbModule/org/yacos/core/users/Role.java @@ -2,7 +2,6 @@ package org.yacos.core.users; import java.io.Serializable; -import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; @@ -32,26 +31,31 @@ public class Role implements Serializable { /** * Dummy field to make the composite PK work despite the ManyToOne relationship */ - @Id + /*@Id @Column(name="user_id",insertable=false,updatable=false) private String user_id; + */ /** * User for which this role is defined * Primary Key */ + + @Id @ManyToOne(targetEntity=User.class,optional=false) @JoinColumn(name="user_id",nullable=false) private User user; /** * Dummy field to make the composite PK work despite the ManyToOne relationship */ - @Id + /*@Id @Column(name="conference_id",insertable=false,updatable=false) private Integer conference_id; + */ /** * Conference for which this role is defined * Primary Key */ + @Id @ManyToOne(targetEntity=Conference.class,optional=false) @JoinColumn(name="conference_id",nullable=false) private Conference conference; @@ -87,7 +91,7 @@ public class Role implements Serializable { @JoinColumn(name="user_id",nullable=false) public void setUser(User user) { this.user = user; - this.user_id = user.getLogin(); + //this.user_id = user.getLogin(); } @ManyToOne(targetEntity=Conference.class,optional=false) @@ -101,7 +105,7 @@ public class Role implements Serializable { @JoinColumn(name="conference_id",nullable=false) public void setConference(Conference conference) { this.conference = conference; - this.conference_id = conference.getId(); + //this.conference_id = conference.getId(); } diff --git a/YACOSCore/ejbModule/org/yacos/core/users/RolePK.java b/YACOSCore/ejbModule/org/yacos/core/users/RolePK.java index e681208..6593a1a 100644 --- a/YACOSCore/ejbModule/org/yacos/core/users/RolePK.java +++ b/YACOSCore/ejbModule/org/yacos/core/users/RolePK.java @@ -1,6 +1,10 @@ package org.yacos.core.users; import java.io.Serializable; + +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + import org.yacos.core.conferences.Conference; import org.yacos.core.users.Role.RoleType; @@ -14,11 +18,17 @@ public class RolePK implements Serializable{ /** * Public key, as described here : http://www.jpox.org/docs/1_2/primary_key.html */ - public String user_id; + + @ManyToOne(targetEntity=User.class,optional=false) + @JoinColumn(name="user_id",nullable=false) + public User user; /** * Public key, as described here : http://www.jpox.org/docs/1_2/primary_key.html */ - public Integer conference_id; + + @ManyToOne(targetEntity=Conference.class,optional=false) + @JoinColumn(name="conference_id",nullable=false) + public Conference conference; /** * Public key, as described here : http://www.jpox.org/docs/1_2/primary_key.html */ @@ -29,9 +39,10 @@ public class RolePK implements Serializable{ public RolePK(User user, RoleType type, Conference conference) { super(); - this.user_id = user.getLogin(); + this.user = user; + this.type = type; - this.conference_id = conference.getId(); + this.conference = conference; } @Override @@ -41,13 +52,13 @@ public class RolePK implements Serializable{ } RolePK otherPK = (RolePK) obj; return type.equals(otherPK.type)&& - user_id.equals(otherPK.user_id)&& - conference_id == otherPK.conference_id; + user.equals(otherPK.user)&& + conference == otherPK.conference; } @Override public int hashCode() { - return type.hashCode() ^ user_id.hashCode() ^ conference_id.hashCode(); + return type.hashCode() ^ user.hashCode() ^ conference.hashCode(); } } diff --git a/YACOSCore/ejbModule/org/yacos/core/users/User.java b/YACOSCore/ejbModule/org/yacos/core/users/User.java index 9598022..ed68201 100644 --- a/YACOSCore/ejbModule/org/yacos/core/users/User.java +++ b/YACOSCore/ejbModule/org/yacos/core/users/User.java @@ -4,10 +4,10 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; -import javax.persistence.CascadeType; + import javax.persistence.Column; import javax.persistence.Entity; -import javax.persistence.FetchType; + import javax.persistence.Id; import javax.persistence.OneToMany; @@ -59,7 +59,8 @@ public class User implements Serializable{ /** * Roles for this user */ - @OneToMany(targetEntity=Role.class,mappedBy="user",fetch=FetchType.EAGER,cascade=CascadeType.ALL) + //@OneToMany(targetEntity=Role.class,mappedBy="user",fetch=FetchType.EAGER,cascade=CascadeType.ALL) + @OneToMany(targetEntity=Role.class,mappedBy="user") private List roles; @OneToMany(targetEntity=Article.class,mappedBy="mainAuthor") @@ -139,7 +140,8 @@ public class User implements Serializable{ return false; } - @OneToMany(targetEntity=Role.class,mappedBy="user",fetch=FetchType.EAGER) + //@OneToMany(targetEntity=Role.class,mappedBy="user",fetch=FetchType.EAGER) + @OneToMany(targetEntity=Role.class,mappedBy="user") public List getRoles(){ return roles; } @@ -162,7 +164,8 @@ public class User implements Serializable{ /** * @param roles the roles to set */ - @OneToMany(targetEntity=Role.class,mappedBy="user",fetch=FetchType.EAGER) + //@OneToMany(targetEntity=Role.class,mappedBy="user",fetch=FetchType.EAGER) + @OneToMany(targetEntity=Role.class,mappedBy="user") public void setRoles(List roles) { this.roles = roles; }