Monday, 30 September 2013

Spring Hibernate when update an user it deletes its role

Spring Hibernate when update an user it deletes its role

I've a problem with spring hibernate, when I update an user this deletes
the associated role... Could it be a cascade matters? I've tried with
every kind of cascade config...
Person
@MappedSuperclass
public abstract class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column
private int id;
@OneToOne(cascade = { CascadeType.ALL } )
@JoinTable(name="user_roles",
joinColumns = {@JoinColumn(name="user_id",
referencedColumnName="id")},
inverseJoinColumns = {@JoinColumn(name="role_id",
referencedColumnName="id")}
)
..
..
..
}
Role
@Entity
@Table(name="roles")
public class Role {
@Id
@GeneratedValue
private Integer id;
private String authority;
@OneToMany(cascade = CascadeType.ALL )
@JoinTable(name="user_roles",
joinColumns = {@JoinColumn(name="role_id",
referencedColumnName="id")},
inverseJoinColumns = {@JoinColumn(name="user_id",
referencedColumnName="id")}
)
private Set<User> userRoles;
..
..
..
}
UserRole
@Entity
@Table (name = "user_roles")
public class UserRole {
@Id
@Column(name = "user_id")
private int userId;
@Column(name = "role_id")
private int roleId;
..
..
..
}
UserDaoImpl
@Override
public void updateUser(User user) {
try {
this.sessionFactory.getCurrentSession().update(user);
} catch (HibernateException e) {
System.out.println(e);
}
}

No comments:

Post a Comment