小编Ber*_*d88的帖子

object引用未保存的瞬态实例:在刷新之前保存瞬态实例

我有两个实体: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)

任何想法我怎么能解决这个问题

谢谢

java hibernate

15
推荐指数
1
解决办法
8万
查看次数

使用Spring Data Cassandra动态创建键空间,表和生成表

使用Cassandra,我想使用Spring Boot应用程序动态创建键空间和表.我正在使用基于Java的配置.

我有一个用@Table注释的实体,我希望在应用程序启动之前创建它的模式,因为它具有事先已知的固定字段.

但是,根据登录用户的不同,我还想动态地为这些用户创建附加表,并能够向这些表插入条目.

有人可以引导我使用一些我可以利用的资源,或指出我如何解决这些问题.非常感谢您的帮助!

java cassandra spring-boot spring-data-cassandra

11
推荐指数
2
解决办法
1万
查看次数

休眠@Version注解

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)

java hibernate hibernate-mapping spring-orm

5
推荐指数
0
解决办法
2万
查看次数