Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate OneTONE映射休眠-不希望将数据保存到第二个表_Hibernate_Hibernate Mapping - Fatal编程技术网

Hibernate OneTONE映射休眠-不希望将数据保存到第二个表

Hibernate OneTONE映射休眠-不希望将数据保存到第二个表,hibernate,hibernate-mapping,Hibernate,Hibernate Mapping,我有两个实体,一个是用户(欠实体-由字段roleId组成,作为用户和角色之间的映射),另一个是角色。 已在数据库中创建角色。 我有一个屏幕,用户在其中选择用户创建时的特定用户角色。 保存数据时,我只想在用户表中保存用户详细信息以及角色Id。我不想保存角色详细信息,因为它已经存在 我正在使用Hibernate进行持久化。使用@OneToOne映射 @Entity public class User{ @Id @GeneratedValue(strategy =

我有两个实体,一个是用户(欠实体-由字段roleId组成,作为用户和角色之间的映射),另一个是角色。 已在数据库中创建角色。 我有一个屏幕,用户在其中选择用户创建时的特定用户角色。 保存数据时,我只想在用户表中保存用户详细信息以及角色Id。我不想保存角色详细信息,因为它已经存在

我正在使用Hibernate进行持久化。使用@OneToOne映射

    @Entity   
    public class User{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Column(nullable = false)
        private String firstName;


        @Column(nullable = false)
        private String lastName;

        @OneToOne(fetch = FetchType.EAGER)
            @JoinColumn(name = "role_id")
            private Role role;

    }


@Entity
public class Role {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Column(unique = true, nullable = false)
    private String role;

}
目前,它正在尝试保存用户和角色的详细信息。这不是必需的。
请帮助解决此问题。

我建议您限制级联以删除:

@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE)
@JoinColumn(name = "role_id")
private Role role;

尝试-获取以下由以下原因引起的异常:org.hibernate.TransientPropertyValueException:对象引用未保存的临时实例-在Flushingys之前保存临时实例,您应该先保存角色,在您想要保存对未保存角色的引用的用户之前-应该为未保存的角色保存哪个ID
user
角色?数据库中已经存在角色,我只是引用相同的ID。我只是在用户对象的role对象中设置RoleId并尝试保存。如果我获取角色并将其设置在用户对象中并尝试保存它,则效果良好。但在这里,我需要打一个额外的电话来获取不需要的角色详细信息。如何避免?在保存用户对象之前,是否在用户对象上设置了托管角色对象?