8

内部結合を使用した次の MySQL 更新クエリがあります。

 UPDATE Country AS c
 INNER JOIN  State s ON c.CountryID = s.CountryID
 INNER JOIN  City cy On s.StateID = cy.StateID
 SET  c.Active='Y', s.Active='Y',cy.Active='Y'
 WHERE  c.CountryID='12'

これが私の国のマッピングクラスです

enter code here
@Entity
@Table(name = "Country")
public class Country {
public Country() {
}

@Id
@Column(name = "CountryID")
private String countryID;

@OneToMany(fetch = FetchType.LAZY, mappedBy = "country")
private Set<State> state = new HashSet<State>(0);

@Column(name = "CountryName")
private String countryName;
}

State の Mping クラス

 @Entity
 @Table(name = "State")
 public class State {
public State() {
}

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "countryID", nullable = false)
private Country country;

public Country getCountry() {
    return country;
}

public void setCountry(Country country) {
    this.country = country;
}

@Id
@Column(name = "StateID")
private String stateID;

@Column(name = "CountryID")
private String countryID;

@Column(name = "StateName")
private String stateName;

同じクエリを hibernatye 言語で作成するにはどうすればよいですか。誰か助けてください。私はたくさん試しましたが、私はそれを作ることができません。

ありがとう

4

2 に答える 2

6

できません。HQL 更新クエリに結合を含めることはできません。ドキュメントを参照してください:

注意すべき点:

  • [...]
  • 一括 HQL クエリでは、暗黙的または明示的な結合を指定できません。
于 2012-11-20T08:00:46.977 に答える