Hi all, I am sorry, but i cannot get it working. I have three tables with a PK beeing a single attribute. And then I have another table, with three attributes each referencing the PK of one table. And these three attributes are at the same time the PrimaryKey (PK)
SQL looks like this: | CREATE TABLE ListedSections ( | SectionID SMALLINT NOT NULL, | SectionName CHARACTER VARYING(50) NOT NULL, | SectionDescription CHARACTER VARYING(150), | DateAdded TIMESTAMP DEFAULT current_timestamp, | ActiveUntil TIMESTAMP, | CONSTRAINT PK_ListedSections PRIMARY KEY (SectionID) | ); | | CREATE TABLE ListedRights ( | RightID SMALLINT NOT NULL, | RightName CHARACTER VARYING(50) NOT NULL, | RightDescription CHARACTER VARYING(150), | DateAdded TIMESTAMP DEFAULT current_timestamp, | ActiveUntil TIMESTAMP, | CONSTRAINT PK_ListedRights PRIMARY KEY (RightID) | ); | | CREATE TABLE ListedRoles ( | RoleID SMALLINT NOT NULL, | RoleName CHARACTER VARYING(40) NOT NULL, | RoleDescription CHARACTER VARYING(150), | DateAdded TIMESTAMP DEFAULT current_timestamp, | ActiveUntil TIMESTAMP, | CONSTRAINT PK_ListedRoles PRIMARY KEY (RoleID) | ); | | CREATE TABLE RoleHasRights ( | RightID SMALLINT NOT NULL, | RoleID SMALLINT NOT NULL, | SectionID SMALLINT NOT NULL, | CONSTRAINT PK_RoleHasRights PRIMARY KEY (RightID, RoleID, SectionID) | ); | | ALTER TABLE RoleHasRights ADD CONSTRAINT ListedRights_RoleHasRights | FOREIGN KEY (RightID) REFERENCES ListedRights (RightID); | | ALTER TABLE RoleHasRights ADD CONSTRAINT ListedRoles_RoleHasRights | FOREIGN KEY (RoleID) REFERENCES ListedRoles (RoleID); | | ALTER TABLE RoleHasRights ADD CONSTRAINT ListedSections_RoleHasRights | FOREIGN KEY (SectionID) REFERENCES ListedSections (SectionID); | My Entities are looking like this: | package myPackage; | | import java.io.Serializable; | import java.sql.Timestamp; | import java.util.Collection; | import java.util.ArrayList; | | import javax.persistence.Entity; | import javax.persistence.Id; | import javax.persistence.JoinColumn; | import javax.persistence.OneToMany; | import javax.persistence.Table; | | @Entity | @Table(name="listedroles", schema="public", catalog="postgres") | public class Role implements Serializable { | private static final long serialVersionUID = 1L; | private int roleid; | private String roleName; | private String roleDescription; | private Timestamp dateadded; | private Timestamp activeuntil; | private Collection<RoleHasRights> roleHasRights = new ArrayList<RoleHasRights>(); | | //-------------------------------------------------------------------------- | @Id | public int getRoleid() { | return this.roleid; | } | | //-------------------------------------------------------------------------- | public void setRoleid(int roleid) { | this.roleid = roleid; | } | | //-------------------------------------------------------------------------- | public String getRoleName() { | return this.roleName; | } | | //-------------------------------------------------------------------------- | public void setRoleName(String roleName) { | this.roleName = roleName; | } | | //-------------------------------------------------------------------------- | public String getRoleDescription() { | return this.roleDescription; | } | | //-------------------------------------------------------------------------- | public void setRoleDescription(String roleDescription) { | this.roleDescription = roleDescription; | } | | //-------------------------------------------------------------------------- | public Timestamp getDateadded() { | return this.dateadded; | } | | //-------------------------------------------------------------------------- | public void setDateadded(Timestamp dateadded) { | this.dateadded = dateadded; | } | | //-------------------------------------------------------------------------- | public Timestamp getActiveuntil() { | return this.activeuntil; | } | | //-------------------------------------------------------------------------- | public void setActiveuntil(Timestamp activeuntil) { | this.activeuntil = activeuntil; | } | | //-------------------------------------------------------------------------- | @OneToMany(mappedBy="roleHasRightsPK.roleid") | @JoinColumn(name="roleHasRightsPK") | public Collection<RoleHasRights> getRoleHasRights() { | return this.roleHasRights; | } | | //-------------------------------------------------------------------------- | public void setRoleHasRights(Collection<RoleHasRights> roleHasRights) { | this.roleHasRights = roleHasRights; | } | } | Sections and Rights are nearly the same And RoleHasRights: | package com.auctonova.ejb.admin.persitence; | | import java.io.Serializable; | | import javax.persistence.Table; | import javax.persistence.Entity; | import javax.persistence.Embeddable; | import javax.persistence.EmbeddedId; | import javax.persistence.ManyToOne; | | @Entity | @Table(name="rolehasrights", schema="public", catalog="postgres") | public class RoleHasRights implements Serializable { | private static final long serialVersionUID = 1L; | private RoleHasRightsPK roleHasRightsPK; | | //-------------------------------------------------------------------------- | @EmbeddedId | @ManyToOne | public RoleHasRightsPK getRoleHasRightsPK() { | return roleHasRightsPK; | } | | //-------------------------------------------------------------------------- | public void setRoleHasRightsPK(RoleHasRightsPK roleHasRightsPK) { | this.roleHasRightsPK = roleHasRightsPK; | } | | //-------------------------------------------------------------------------- | public int getRoleid() { | return this.roleHasRightsPK.roleid; | } | | //-------------------------------------------------------------------------- | public void setRoleid(int roleid) { | this.roleHasRightsPK.roleid = roleid; | } | | //-------------------------------------------------------------------------- | public int getRightid() { | return this.roleHasRightsPK.rightid; | } | | //-------------------------------------------------------------------------- | public void setRightid(int rightid) { | this.roleHasRightsPK.rightid = rightid; | } | | //-------------------------------------------------------------------------- | public int getSectionid() { | return this.roleHasRightsPK.sectionid; | } | | //-------------------------------------------------------------------------- | public void setSectionid(int sectionid) { | this.roleHasRightsPK.sectionid = sectionid; | } | | | //-------------------------------------------------------------------------- | @Embeddable | public static class RoleHasRightsPK implements Serializable { | private static final long serialVersionUID = 1L; | private int roleid; | private int rightid; | private int sectionid; | | //---------------------------------------------------------------------- | public RoleHasRightsPK() { | super(); | } | | //---------------------------------------------------------------------- | public int getRoleid() { | return roleid; | } | | //---------------------------------------------------------------------- | public void setRoleid(int roleid) { | this.roleid = roleid; | } | | //---------------------------------------------------------------------- | public int getRightid() { | return rightid; | } | | //---------------------------------------------------------------------- | public void setRightid(int rightid) { | this.rightid = rightid; | } | | //---------------------------------------------------------------------- | public int getSectionid() { | return sectionid; | } | | //---------------------------------------------------------------------- | public void setSectionid(int sectionid) { | this.sectionid = sectionid; | } | | //---------------------------------------------------------------------- | @Override | public boolean equals(Object o) { | if (o == this) { | return true; | } | if ( ! (o instanceof RoleHasRightsPK)) { | return false; | } | RoleHasRightsPK other = (RoleHasRightsPK) o; | return (this.roleid == other.roleid) | && (this.rightid == other.rightid) | && (this.sectionid == other.sectionid); | } | | //---------------------------------------------------------------------- | @Override | public int hashCode() { | return ((int) (this.roleid ^ (this.roleid >>> 32))) | ^ ((int) (this.rightid ^ (this.rightid >>> 32))) | ^ this.sectionid; | } | } | } | Can anybody help my getting this working? Thank you very much and kind regards, Thomas View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4087499#4087499 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4087499 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user