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

时间:2015-01-30 12:10:20

标签: hibernate hibernate-mapping

我有两个实体一个用户(Owing实体 - 由字段roleId组成用户和角色之间的映射),另一个是Role。 角色已在数据库中创建。 我有屏幕,用户在用户创建时选择特定的用户角色。 当我保存数据时,我只想在User表中保存用户详细信息和角色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;

}

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

1 个答案:

答案 0 :(得分:0)

我建议您限制级联删除:

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