这是我的第一篇文章,我遇到了hibernate @OneToOne映射的问题。我的第一个例子是link。所以我有两个模型类调用User和Profile。每次用户执行注册表时,我都想创建一个具有给定信息和用户默认配置文件的新用户帐户。但问题是我的代码只能生成用户帐户,但不能生成个人资料。我的结构如下:
public class User {
@OneToOne(fetch=FetchType.LAZY, mappedBy="profileUser", cascade=CascadeType.ALL)
private Profile profile;
}
public class Profile {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="PROFILE_ID")
private Long profileId;
@OneToOne
@PrimaryKeyJoinColumn
private User profileUser;
}
@Repository
public UserDao {
public void createUser(User user) {
currentSession().save(user);
}
}
@Service
public UserService {
@Autowire UserDao dao;
@Transactional
public void createUser(User user) {
Profile profile = Profile.createInstance();
profile.setProfileUser(user);
user.setProfile(profile);
dao.createUser(user);
}
}
我查看控制台并检测到只运行一个查询来保留帐户而不是配置文件。我不知道我哪里做错了。