Note that there are some explanatory texts on larger screens.

plurals
  1. POHibernate Mappings for struts2
    primarykey
    data
    text
    <p>I am trying to build a login page using hibernate and struts2. My design is as follows. Each login user has a role. Many users can have the same role.<br> So my class are:<br> <strong>User.java</strong></p> <pre><code>@Entity @Table(name = "user", catalog = "ciner") public class User implements java.io.Serializable { private Integer userId; private Role role; private String loginId; private String password; private String firstName; private String lastName; public User() { } public User(Role role, String loginId, String password, String firstName, String lastName) { this.role = role; this.loginId = loginId; this.password = password; this.firstName = firstName; this.lastName = lastName; } @Id @GeneratedValue(strategy = IDENTITY) @Column(name = "user_id") public Integer getUserId() { return this.userId; } public void setUserId(Integer userId) { this.userId = userId; } @Column(name = "password", nullable = false) public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "role_id") public Role getRole() { return this.role; } public void setRole(Role role) { this.role = role; } @Column(name = "login_id", nullable = false, length = 7) public String getLoginId() { return this.loginId; } public void setLoginId(String loginId) { this.loginId = loginId; } @Column(name = "first_name", nullable = false, length = 50) public String getFirstName() { return this.firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } @Column(name = "last_name", nullable = false, length = 50) public String getLastName() { return this.lastName; } public void setLastName(String lastName) { this.lastName = lastName; } @Override public String toString() { return "User{" + "userId=" + userId + "role=" + role + "loginId=" + loginId + "firstName=" + firstName + "lastName=" + lastName + '}'; } } </code></pre> <p><strong>Role.java</strong></p> <pre><code>@Entity @Table(name = "role", catalog = "ciner") public class Role implements java.io.Serializable { private Integer roleId; private String roleDescription; private List users; public Role() { } public Role(String roleDescription) { this.roleDescription = roleDescription; } public Role(String roleDescription, List users) { this.roleDescription = roleDescription; this.users = users; } @Id @GeneratedValue(strategy = IDENTITY) @Column(name = "role_id", unique = true, nullable = false) public Integer getRoleId() { return this.roleId; } public void setRoleId(Integer roleId) { this.roleId = roleId; } @Column(name = "role_description", nullable = false, length = 100) public String getRoleDescription() { return this.roleDescription; } public void setRoleDescription(String roleDescription) { this.roleDescription = roleDescription; } // @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = // "role") @OneToMany(fetch = FetchType.LAZY, mappedBy = "role", targetEntity = User.class) public List getUsers() { return this.users; } public void setUsers(List users) { this.users = users; } @Override public String toString() { return "Role{" + "roleId=" + roleId + "roleDescription=" + roleDescription + "users=" + users + '}'; } } </code></pre> <p>It returns 1 user just fine if it is valid. But since the method return that user back, i use <code>return users.get(0);</code></p> <p><strong>Stack</strong></p> <pre><code>java.lang.StackOverflowError java.lang.Integer.toString(Unknown Source) java.lang.Integer.toString(Unknown Source) java.lang.String.valueOf(Unknown Source) java.lang.Integer.toString(Unknown Source) java.lang.String.valueOf(Unknown Source) java.lang.StringBuilder.append(Unknown Source) com.inhis.model.Role.toString(Role.java:70) sun.reflect.GeneratedMethodAccessor293.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197) com.inhis.model.Role_$$_javassist_6.toString(Role_$$_javassist_6.java) java.lang.String.valueOf(Unknown Source) java.lang.StringBuilder.append(Unknown Source) com.inhis.model.User.toString(User.java:97) java.lang.String.valueOf(Unknown Source) java.lang.StringBuilder.append(Unknown Source) java.util.AbstractCollection.toString(Unknown Source) org.hibernate.collection.PersistentBag.toString(PersistentBag.java:507) </code></pre> <p>Say, roles are<br> 1, Unauthorized<br> 2, Manager<br> 3, User<br> What am I doing wrong? Also, I want assign them a default role of 1. I couldn't figure that out. So, I am storing it as null now. How can I achieve that?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload