hbm.xml
ericmacau Sep 12, 2006 5:39 AMHello,
As I am a beginner in Hibernate and I usually used Annotated classes. I am now going to tried hbm.xml. Could you please to tell me how I can convert the following annotated classes into hbm.xml ?
package mo.putoweb.model.account; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.Transient; @Entity public class User implements Serializable { public static final long serialVersionUID = 1L; private String username; private String password; private String firstName; private String lastName; private String displayName; private String gender; private boolean activate; private Collection<Role> roles = new ArrayList<Role>(); private Collection<Group> groups = new ArrayList<Group>(); @Transient public boolean isActivate() { return activate; } public boolean getActivate() { return activate; } public void setActivate(boolean activate) { this.activate = activate; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Id //@GeneratedValue(strategy = GenerationType.AUTO) public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getDisplayName() { return displayName; } public void setDisplayName(String displayName) { this.displayName = displayName; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } @ManyToMany(cascade = {CascadeType.REMOVE}, fetch = FetchType.EAGER, targetEntity=Role.class) @JoinTable( name="USER_ROLE_LINK", joinColumns={@JoinColumn(name="username")}, inverseJoinColumns={@JoinColumn(name="rolename")} ) public Collection<Role> getRoles() { return roles; } public void setRoles(Collection<Role> roles) { this.roles = roles; } @Transient public void addRole(Role role) { this.roles.add(role); } @ManyToMany(cascade = {CascadeType.REMOVE}, fetch = FetchType.LAZY, targetEntity=Group.class) @JoinTable( name="USER_GROUP_LINK", joinColumns={@JoinColumn(name="username")}, inverseJoinColumns={@JoinColumn(name="groupname")} ) public Collection<Group> getGroups() { return groups; } public void setGroups(Collection<Group> groups) { this.groups = groups; } @Transient public void addGroup(Group group) { groups.add(group); } }
package mo.putoweb.model.account; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.Transient; @Entity public class Role implements Serializable { public static final long serialVersionUID = 1L; private String roleName; private String description; private Collection<User> users = new ArrayList<User>(); public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @Id public String getRoleName() { return roleName; } public void setRoleName(String roleName) { this.roleName = roleName; } @ManyToMany( targetEntity=User.class, mappedBy="roles", fetch = FetchType.EAGER) @JoinTable( name="USER_ROLE_LINK", joinColumns={@JoinColumn(name="rolename")}, inverseJoinColumns={@JoinColumn(name="username")} ) public Collection<User> getUsers() { return users; } public void setUsers(Collection<User> users) { this.users = users; } @Transient public void addUser(User user) { this.users.add(user); } }
package mo.putoweb.model.account; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.Table; import javax.persistence.Transient; @Entity @Table(name = "UserGroup") public class Group implements Serializable { private static final long serialVersionUID = 1L; private String groupName; private String description; private Collection<User> users = new ArrayList<User>(); public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @Id public String getGroupName() { return groupName; } public void setGroupName(String groupName) { this.groupName = groupName; } @ManyToMany(fetch = FetchType.LAZY, mappedBy="groups") @JoinTable( name="USER_GROUP_LINK", joinColumns={@JoinColumn(name="groupname")}, inverseJoinColumns={@JoinColumn(name="username")} ) public Collection<User> getUsers() { return users; } public void setUsers(Collection<User> users) { this.users = users; } @Transient public void addUser(User user) { users.add(user); } }