Hibernate 休眠保存对象问题

Hibernate 休眠保存对象问题,hibernate,Hibernate,我有以下课程: @Entity @Table(name = "branch", uniqueConstraints = {@UniqueConstraint(columnNames = {"bname", "branch_fk"})}) public class BranchEntity implements Serializable { @Id @GeneratedValue private int id; @Column(name = "username",

我有以下课程:

@Entity
@Table(name = "branch", uniqueConstraints = {@UniqueConstraint(columnNames = {"bname", "branch_fk"})})
public class BranchEntity implements Serializable {

    @Id
    @GeneratedValue
    private int id;
    @Column(name = "username", length = 64, nullable = false)
    private String userName;
    @Column(name = "bname", length = 64)
    private String branchName;
    @Column(name = "studcount")
    private int studCount;
    @Column(name = "blevel", columnDefinition = "int default 0")
    private int level;
    @Column(name = "confirmed", columnDefinition = "tinyint default 0")
    private int confirmed;
    @OneToMany(mappedBy = "branch", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @OnDelete(action = OnDeleteAction.CASCADE)
    @Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
    private Set<BranchBuildingEntity> branchbuilding = new HashSet<BranchBuildingEntity>();
    @OneToMany(mappedBy = "branch", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @OnDelete(action = OnDeleteAction.CASCADE)
    @Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
    private Set<PictureEntity> picture = new HashSet<PictureEntity>();
    @OneToOne(mappedBy = "branch", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @OnDelete(action = OnDeleteAction.CASCADE)
    @Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
    private LoginEntity login;
    @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)    
    @JoinColumn(name = "human_fk", nullable = true)
    private HumanEntity human;
//some setter and getter
@实体
@表(name=“branch”,uniqueConstraints={@UniqueConstraint(columnNames={“bname”,“branch_fk”})})
公共类BranchEntity实现了可序列化{
@身份证
@生成值
私有int-id;
@列(name=“username”,长度=64,可空=false)
私有字符串用户名;
@列(name=“bname”,长度=64)
私有字符串分支名称;
@列(name=“studcount”)
私人国际学生人数;
@列(name=“blevel”,columnDefinition=“int default 0”)
私有整数级;
@列(name=“已确认”,columnDefinition=“tinyint默认值0”)
私人int确认;
@OneToMany(mappedBy=“branch”,fetch=FetchType.LAZY,cascade=CascadeType.ALL)
@OnDelete(action=OnDeleteAction.CASCADE)
@Cascade(org.hibernate.annotations.CascadeType.DELETE\u孤儿)
私有集branchbuilding=newHashSet();
@OneToMany(mappedBy=“branch”,fetch=FetchType.LAZY,cascade=CascadeType.ALL)
@OnDelete(action=OnDeleteAction.CASCADE)
@Cascade(org.hibernate.annotations.CascadeType.DELETE\u孤儿)
私有集picture=newhashset();
@OneTONE(mappedBy=“branch”,fetch=FetchType.LAZY,cascade=CascadeType.ALL)
@OnDelete(action=OnDeleteAction.CASCADE)
@Cascade(org.hibernate.annotations.CascadeType.DELETE\u孤儿)
私有登录;
@OneToOne(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
@JoinColumn(name=“human_fk”,nullable=true)
私人人性实体人性;
//一些二传手和接球手
正如你们所看到的,这些表格与人文性、图画性和……表格有关。 在我的域层中,我有一个分支类,它依赖于分支表及其所有关系。 当域传递一个分支对象,我想更改数据库中的分支时,我遇到了一些问题,请在下面解释。 在人类类的域层中,我没有标识符(主键),当我想要保存或更新(branchEntity)时,我必须设置所有属性,但当我想要设置branchEntity.setHumanEntity时,我必须再次查询并从数据库中获取标识符,设置为humanEntity,然后设置branchEntity.setHumanEntity。 我想知道这是对的?还是我做错了什么?我必须在域层的人类类中保留HumanEntity标识符吗?
事实上,我不知道在保存或保存或更新或…以及与其他对象相关的对象时会发生什么情况?我必须如何处理该对象?

您的问题不容易理解;如果我有误解,请道歉。为什么您的HumanEntity在域层中没有标识符?我可以看到您的分支名称是“id”也就是说,我想知道,如果我必须在我的类Human in Domain中有HumanENtity Id,那么我重构代码并添加它,但从逻辑上讲,我不需要在我的域层中使用该标识符