我有两个实体: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)
任何想法我怎么能解决这个问题
谢谢
使用Cassandra,我想使用Spring Boot应用程序动态创建键空间和表.我正在使用基于Java的配置.
我有一个用@Table注释的实体,我希望在应用程序启动之前创建它的模式,因为它具有事先已知的固定字段.
但是,根据登录用户的不同,我还想动态地为这些用户创建附加表,并能够向这些表插入条目.
有人可以引导我使用一些我可以利用的资源,或指出我如何解决这些问题.非常感谢您的帮助!
hibernate @version 和 ManyToOne Mapping 之间的关系是什么。
假设我有两个表部门和员工。这里 Deparment 是主表,而 Employee 是明细表。在Employee表中,departmentID作为外键被引用。
这是我的课
Public class Department {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long ID;
@Version
private Long version;
//Getters and Setters
}
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long ID;
@Version
private Long version;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "departmentID" )
private Department department;
}
Run Code Online (Sandbox Code Playgroud)
而且,Spring 处理会话。因此,假设在一页中,特定部门被提取并存储在 HTTP 会话中。
现在在另一个页面中,我正在尝试执行以下操作
Employee emp = new Employee();
emp.setName('Test')
emp.setDepartment(dept) // already stored in the HTTP session variable
service.save(emp)
Run Code Online (Sandbox Code Playgroud)
现在我收到以下异常
org.springframework.dao.InvalidDataAccessApiUsageException: …Run Code Online (Sandbox Code Playgroud)