-1

テーブルEMPLOYEEからテーブルEMPLOYEE_REMARKを作成する必要があります。そして、AnnotationHibernateでそれを行う必要があります。

従業員

EMP_ID、EMP_FNAME、EMP_LNAME

EMPLOYEE_REMARK

EMP_REMARK_ID、EMP_ID、REMARK

これはOnetoOne関係になります。つまり、EMP_IDごとに1つのREMARKがあります。REMARKはnullである可能性があります。

解決策を手伝ってください...従業員から1つのクラスを作成し、そこからEMPLOYEE_REMARKにデータを入力することで実行できますか?

4

1 に答える 1

0

基本的に、ここにあなたが望むことをする方法があります。

従業員

@Entity
@Table(name = "EMPLOYEE")
public class Employee implements Serializable {

    @Id
    @Column(name = "EMP_ID")
    private Long id;
    @Column(name = "EMP_FNAME")
    private String firstName;
    @Column(name = "EMP_LNAME")
    private String lastName;
    @OneToOne(mappedBy = "employee", cascade = CascadeType.ALL,
    orphanRemoval = true)
    private EmployeeRemark employeeRemark;

    public void setRemark(String remark) {
        this.employeeRemark = new EmployeeRemark();
        this.employeeRemark.setRemark(remark);
        this.employeeRemark.setEmployee(this);
    }

    public String getRemark() {
        return employeeRemark == null ? null : employeeRemark.getRemark();
    }

    //getters and setters
}

従業員の発言

@Entity
@Table(name = "EMPLOYEE_REMARK")
public class EmployeeRemark implements Serializable {

    @Id
    @Column(name = "EMP_REMARK_ID")
    private Long id;
    @OneToOne
    @JoinColumn(name = "EMP_ID")
    private Employee employee;
    @Column(name = "REMARK")
    private String remark;

    //getters and setters
}

従業員を保存するときは、従業員に対して save を呼び出すだけです。EmployeeRemark はすべての操作にカスケードされ、employee とともに削除されるか、他の方法で孤立した場合に削除されます。

于 2012-05-28T13:04:42.450 に答える