thanks folks, after a lot of playing about the following seems to work (to get the parents and the children objs), Im just worried though that in a table with a lot of associated users, that hibernate is 'eagerly' building up a huge object graph before I call the 'gets, or is it lazy by default
@Table(name = "user") public class User implements Serializable { private Long id; private String username; private User superior; private Set<User> subordinates = new HashSet<User>(); @OneToMany(mappedBy="superior") public Set<User> getSubordinates() { return subordinates; } public void setSubordinates(Set<User> subordinates) { this.subordinates = subordinates; } @ManyToOne @JoinColumn public User getSuperior() { return superior; } public void setSuperior(User superior) { this.superior = superior; } tibi wrote: > > that is correct. > and when you add the @manytoone > the type will change from blob to int > and will be to foreign key to superior > > tibi > > > emmettwalsh wrote: >> but I have to have a superior column as that will hold the id to the >> 'parent' user ...? >> >> >> >> emmettwalsh wrote: >> >>> Hi, can anyone help me with this seemingly simple relationship Im trying >>> to model >>> >>> Basically I have a User class/object - which maps to a User table. I >>> want >>> each user to contain a reference to a superior User and also a reference >>> to a List of subordinate users. >>> >>> When I load a user from the database I want all this information >>> contained >>> in the User object without having to do any extra queries, but unsure if >>> its possible, here is what I have so far. Can anyone tell me if I am on >>> thr right track ... >>> >>> >>> @Entity >>> @Table(name = "user") >>> public class User implements Serializable { >>> >>> private Long id; >>> private String username; >>> >>> private User superior; >>> private Set<User> subordinates = new HashSet<User>(); >>> >>> @OneToMany(mappedBy="user",cascade=CascadeType.ALL) >>> public Set<User> getSubordinates() { >>> return subordinates; >>> } >>> >>> >>> @Column(nullable=true) >>> public User getSuperior() { >>> return superior; >>> } >>> >>> >>> the annotations created a tinyblob for some reason for the superior >>> field >>> >>> mysql> desc user; >>> +----------+-------------+------+-----+---------+----------------+ >>> | Field | Type | Null | Key | Default | Extra >>> | >>> +----------+-------------+------+-----+---------+----------------+ >>> | id | bigint(20) | NO | PRI | NULL | >>> auto_increment >>> | >>> | superior | tinyblob | YES | | NULL | >>> | >>> | username | varchar(50) | NO | UNI | NULL | | >>> +----------+-------------+------+-----+---------+----------------+ >>> 3 rows in set (0.00 sec) >>> >>> >>> >>> >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net > For additional commands, e-mail: users-h...@appfuse.dev.java.net > > > -- View this message in context: http://www.nabble.com/Hibernate-help-tp22688812s2369p22709344.html Sent from the AppFuse - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net For additional commands, e-mail: users-h...@appfuse.dev.java.net