我有两个实体:PlayerProfileEntity和UserInfoEntity我有一个关于userInfoEntity和PlaterProfileEntity的连接并将我的记录保存在数据库中,如下所示:
Session session = sessionFactory.openSession();
Transaction tr = session.beginTransaction();
Criteria crit = session.createCriteria(PlayerProfileEntity.class);
player.setUserId(new UserInfoEntity());
player.getUserId().setAddress(user.getUserId().getAddress());
session.save(player);
tr.commit();
Run Code Online (Sandbox Code Playgroud)
我在我的PlayerProfileEntity类中使用了这个assosiation
@ManyToOne (fetch = FetchType.LAZY)
@Cascade({CascadeType.REFRESH})
@JoinColumn(name="userid")
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.shared.entity.UserInfoEntity
Run Code Online (Sandbox Code Playgroud)
注意:如果我使用CascadeType.All,我收到此错误:
Cannot add or update a child row: a foreign key constraint fails
Run Code Online (Sandbox Code Playgroud)
任何想法我怎么能解决这个问题
谢谢
PVR*_*PVR 20
在TransientObjectException每次尝试保存对象不保存适当Joins.You有保存来自UserInfoEntity第一和事后你可以保存你的PlayerInfoEntity类.
player.setUserId(new UserInfoEntity());
Run Code Online (Sandbox Code Playgroud)
通过使用这种要指定特定的UserInfoEntity到PlayerInfoEntity.但UserInfoEntity没有任何身份证明.如何映射?这就是异常即将到来的原因.
希望它会对你有所帮助.
| 归档时间: |
|
| 查看次数: |
77409 次 |
| 最近记录: |