如何在JPA中使用Hibernate更改一对多关系条目

时间:2017-11-01 15:31:22

标签: hibernate jpa

我有一个名为' Customer'的班级。这个类与其他名为“Auftraege'”的类有一个OneToMany关系。

@Entity
@NamedQuery(name = "all.customers", query = "SELECT c FROM Customer c")
public class Customer implements Serializable {

private static final long serialVersionUID = 1L;

public Customer() {
    super();
}

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "_id_auftrag", referencedColumnName = "_id")
private Set<Auftraege> auftraege = new HashSet<Auftraege>();

[getter/setter]

 }

Auftraege.class

@Entity
public class Auftraege implements Serializable {

private static final long serialVersionUID = 1L;

public Auftraege() {
    super();
}

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int _id;

@Column(unique = true)
private int auftragsnummer;

@Temporal(TemporalType.TIMESTAMP)
private Date datum;

@Column(length = 60)
private String themengebiet;

@Column(length = 10)
private String status;

@Column(length = 350)
private String begruendung;

public int get_id() {
    return _id;
}

public void set_id(int _id) {
    this._id = _id;
}

public int getAuftragsnummer() {
    return auftragsnummer;
}

public void setAuftragsnummer(int auftragsnummer) {
    this.auftragsnummer = auftragsnummer;
}

public Date getDatum() {
    return datum;
}

public void setDatum(Date datum) {
    this.datum = datum;
}

public String getThemengebiet() {
    return themengebiet;
}

public void setThemengebiet(String themengebiet) {
    this.themengebiet = themengebiet;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public String getBegruendung() {
    return begruendung;
}

public void setBegruendung(String begruendung) {
    this.begruendung = begruendung;
}

}

现在,我想改变“状态”状态。 &#39; Auftraege&#39;中的属性上课到另一个条目。 为此,我有一个数据表,其中包含客户,如果我点击一个按钮(每行有一个),我想要获得点击的行客户并更改“状态”&#39;属于Auftraege&#39;类。但我怎么能这样做?我总是将所有的Auftraege作为客户的清单,但我只想要一个,我点击了。 这是我点击表格中的按钮时调用的类:

@Named
@SessionScoped
public class AuswertungBean implements Serializable {

    public void genehmigen(Customer c) {
    Customer cu = c;
    for (Auftraege a : cu.getAuftraege()) {

        System.out.println(a.getAuftragsnummer());

    }
}

0 个答案:

没有答案