Issue : JPA cascade = CascadeType.ALL inserting 2 records in child table .
In User.java :
@OneToOne(cascade = CascadeType.ALL , mappedBy="user" , fetch=FetchType.EAGER)
@PrimaryKeyJoinColumn
private Role role ;
In Role.java :
@OneToOne(cascade= CascadeType.DETACH, fetch=FetchType.LAZY)
@LazyToOne(value = LazyToOneOption.NO_PROXY)
@JoinColumns({
@JoinColumn(name="user_id", referencedColumnName="user_id"),
})
private User user ;
Code :
Role role = new Role();
user.setRole(role);
dao.update(user); // This is inserting 2 records in Role table .
Why is this happening ?