我有表委托和表kotizacije_cjenovnik和fk kategorije_id,它引用了委托表的id columnn。我想加入这两个表并返回结果。这是我的代表班:
@Entity
@Table(name = "delegat")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Delegat implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@Column(name = "delegat_name", nullable = false)
@OneToMany(
cascade = CascadeType.ALL,
orphanRemoval = true
)
private List<KotizacijeCjenovnik> kategorija = new ArrayList<>();
private String delegatName;
// jhipster-needle-entity-add-field - JHipster will add fields here, do not remove
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getDelegatName() {
return delegatName;
}
public Delegat delegatName(String delegatName) {
this.delegatName = delegatName;
return this;
}
public void setDelegatName(String delegatName) {
this.delegatName = delegatName;
}
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here, do not remove
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Delegat delegat = (Delegat) o;
if (delegat.getId() == null || getId() == null) {
return false;
}
return Objects.equals(getId(), delegat.getId());
}
@Override
public int hashCode() {
return Objects.hashCode(getId());
}
@Override
public String toString() {
return "Delegat{" +
"id=" + getId() +
", delegatName='" + getDelegatName() + "'" +
"}";
}
}
这是KotizacijeCjenovnik类:
@Entity
@Table(name = "kotizacije_cjenovnik")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class KotizacijeCjenovnik implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "cijena1", nullable = false)
private Double cijena1;
@Column(name = "cijena2", nullable = false)
private Double cijena2;
@Column(name = "cijena3", nullable = false)
private Double cijena3;
@ManyToOne
private Delegat kategorija;
@ManyToOne
private Kotizacija kotizacija;
// jhipster-needle-entity-add-field - JHipster will add fields here, do not remove
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Double getCijena1() {
return cijena1;
}
public KotizacijeCjenovnik cijena1(Double cijena) {
this.cijena1 = cijena;
return this;
}
public void setCijena1(Double cijena) {
this.cijena1 = cijena;
}
public Double getCijena2() {
return cijena2;
}
public KotizacijeCjenovnik cijena2(Double cijena) {
this.cijena2 = cijena;
return this;
}
public void setCijena2(Double cijena) {
this.cijena2 = cijena;
}
public Double getCijena3() {
return cijena3;
}
public KotizacijeCjenovnik cijena3(Double cijena) {
this.cijena3 = cijena;
return this;
}
public void setCijena3(Double cijena) {
this.cijena3 = cijena;
}
public Kotizacija getKotizacija() {
return kotizacija;
}
public KotizacijeCjenovnik kotizacija(Kotizacija kotizacija) {
this.kotizacija = kotizacija;
return this;
}
public void setKotizacija(Kotizacija kotizacija) {
this.kotizacija = kotizacija;
}
public Delegat getDelegat() {
return kategorija;
}
public KotizacijeCjenovnik delegat(Delegat kategorija) {
this.kategorija = kategorija;
return this;
}
public void setDelegat(Delegat kategorija) {
this.kategorija = kategorija;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
KotizacijeCjenovnik kotizacijeCjenovnik = (KotizacijeCjenovnik) o;
if(kotizacijeCjenovnik.getId() == null || getId() == null) {
return false;
}
return Objects.equals(getId(), kotizacijeCjenovnik.getId());
}
@Override
public int hashCode() {
return Objects.hashCode(getId());
}
@Override
public String toString() {
return "KotizacijeCjenovnik{" +
"id=" + getId() +
", cijena1=" + getCijena1() +
", cijena2=" + getCijena2() +
", cijena3=" + getCijena3() +
"}";
}
}
这是一个返回结果的函数:
@Query(value="select delegat from Delegat delegat left join fetch delegat.kategorija")
List<Object> getUnused();
但我只从Delegat获得结果。我的问题是如何从delegat表返回行,以及来自kotizacije_cjenovnik表的匹配行。
答案 0 :(得分:0)
您可以转动查询并选择多方,只需:
@Query(value="select kot from KotizacijeCjenovnik kot")
List<KotizacijeCjenovnik> getUnused();
您的查询的每一行都有一个KotizacijeCjenovnik
,您可以呼叫每个getDelegat
来访问相应的Delegat
实体