Hi,
i am getting problem with one-to-one mapping. i have mapped it as birectional, the child table is sharing PK of parent as PK.
I am using using hiber nate annotations 3.3 and spring 2.0
here is the mapping:
Code:
@Entity
@Table(name = "USER")
@Proxy(lazy = true)
public class User implements Serializable
{
@Id
@Column(name = "USER_ID", nullable = false, length = 50)
@GeneratedValue(generator = "uuid.hex")
@GenericGenerator(name = "uuid.hex", strategy = "uuid.hex")
private String userId;
...
@OneToOne(fetch = FetchType.LAZY)
@Cascade({CascadeType.ALL})
@PrimaryKeyJoinColumn
private UserProfile userProfile;
}
Code:
@Entity
@Table(name = "USER_PROFILE")
@org.hibernate.annotations.GenericGenerator(name = "UserProfile", strategy = "foreign", parameters = {@org.hibernate.annotations.Parameter(name = "property", value = "userProfile")})
public class UserProfile implements Serializable
{
@Id
@Column(name = "USERID")
@GeneratedValue(generator = "UserProfile")
private String userProfileId;
@OneToOne(mappedBy = "userProfile")
@SuppressWarnings("all")
private User user;
}
this is the mapping, it is hvaing normal setter/getter methods.
my problem is::
when i am adding user profile through user it is getting added:
Code:
User user=new USer();
...
UserProfile uf=new UserProfile();
uf.serUser(user);
user.setUserProfile(uf);
...
session.save(user);
but when i am trying to delete user profile from the user then its not happening:
Code:
User user=session.findByPrimaryKey(User.class,id);
//this is user is hvaing user profile
user.setUserProfile(null);
..
session.save(user);
..
but the deletion is not happening... :-(
please help me out...what is the problem??
Thanks in advance