我是 Spring Data 中的新手,我必须在官方文档中写一些似乎被称为从方法名称创建查询的内容,这里引用:{{ 3}}
正如您在上一个示例中所看到的,显示了通过方法名称的定义创建查询,例如:
List<Person> findByEmailAddressAndLastname(EmailAddress emailAddress, String lastname);
我认为会返回具有特定电子邮件地址和特定姓氏的人员对象列表。
所以我试图在我的项目中使用Hibernate作为JPA提供程序做同样的事情。
在我的项目中,我有一个 Twb1012Regione 实体类,用于映射数据库中的 anagrafiche.TWB1012_REGIONE :
@Entity
@Table(name="anagrafiche.TWB1012_REGIONE")
@NamedQuery(name="Twb1012Regione.findAll", query="SELECT t FROM Twb1012Regione t")
public class Twb1012Regione implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="COD_REG")
private String codReg;
@Column(name="COD_ARE_GEO")
private String codAreGeo;
@Column(name="COD_CIT")
private String codCit;
@Column(name="COD_IST")
private int codIst;
@Column(name="COD_PGM_ULT_MOV")
private String codPgmUltMov;
@Column(name="COD_UTE_ULT_MOV")
private String codUteUltMov;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="DAT_ORA_ULT_MOV")
private Date datOraUltMov;
@Column(name="DES_REG")
private String desReg;
//bi-directional many-to-one association to Tpg1029Provnuoist
@OneToMany(mappedBy="twb1012Regione")
private List<Tpg1029Provnuoist> tpg1029Provnuoists;
//bi-directional many-to-one association to Twb1013Provincia
@OneToMany(mappedBy="twb1012Regione")
private List<Twb1013Provincia> twb1013Provincias;
public Twb1012Regione() {
}
public String getCodReg() {
return this.codReg;
}
public void setCodReg(String codReg) {
this.codReg = codReg;
}
public String getCodAreGeo() {
return this.codAreGeo;
}
public void setCodAreGeo(String codAreGeo) {
this.codAreGeo = codAreGeo;
}
public String getCodCit() {
return this.codCit;
}
public void setCodCit(String codCit) {
this.codCit = codCit;
}
public int getCodIst() {
return this.codIst;
}
public void setCodIst(int codIst) {
this.codIst = codIst;
}
public String getCodPgmUltMov() {
return this.codPgmUltMov;
}
public void setCodPgmUltMov(String codPgmUltMov) {
this.codPgmUltMov = codPgmUltMov;
}
public String getCodUteUltMov() {
return this.codUteUltMov;
}
public void setCodUteUltMov(String codUteUltMov) {
this.codUteUltMov = codUteUltMov;
}
public Date getDatOraUltMov() {
return this.datOraUltMov;
}
public void setDatOraUltMov(Date datOraUltMov) {
this.datOraUltMov = datOraUltMov;
}
public String getDesReg() {
return this.desReg;
}
public void setDesReg(String desReg) {
this.desReg = desReg;
}
public List<Tpg1029Provnuoist> getTpg1029Provnuoists() {
return this.tpg1029Provnuoists;
}
public void setTpg1029Provnuoists(List<Tpg1029Provnuoist> tpg1029Provnuoists) {
this.tpg1029Provnuoists = tpg1029Provnuoists;
}
public Tpg1029Provnuoist addTpg1029Provnuoist(Tpg1029Provnuoist tpg1029Provnuoist) {
getTpg1029Provnuoists().add(tpg1029Provnuoist);
tpg1029Provnuoist.setTwb1012Regione(this);
return tpg1029Provnuoist;
}
public Tpg1029Provnuoist removeTpg1029Provnuoist(Tpg1029Provnuoist tpg1029Provnuoist) {
getTpg1029Provnuoists().remove(tpg1029Provnuoist);
tpg1029Provnuoist.setTwb1012Regione(null);
return tpg1029Provnuoist;
}
public List<Twb1013Provincia> getTwb1013Provincias() {
return this.twb1013Provincias;
}
public void setTwb1013Provincias(List<Twb1013Provincia> twb1013Provincias) {
this.twb1013Provincias = twb1013Provincias;
}
public Twb1013Provincia addTwb1013Provincia(Twb1013Provincia twb1013Provincia) {
getTwb1013Provincias().add(twb1013Provincia);
twb1013Provincia.setTwb1012Regione(this);
return twb1013Provincia;
}
public Twb1013Provincia removeTwb1013Provincia(Twb1013Provincia twb1013Provincia) {
getTwb1013Provincias().remove(twb1013Provincia);
twb1013Provincia.setTwb1012Regione(null);
return twb1013Provincia;
}
}
因此,在我的项目中,我定义了一个 Twb1012RegioneRepository 接口,该接口是我在之前的 Twb1012Regione 实体类中定义的存储库类:
@RepositoryDefinition(domainClass=Twb1012Regione.class, idClass=String.class)
public interface Twb1012RegioneRepository extends JpaRepository<Twb1012Regione, String> {
// I have to implement it
}
现在我的问题是我想创建2个方法(按照上一个教程所描述的方法名实现2个查询),执行以下任务:
1)返回代表数据库上 TWB1012_REGIONE 表的所有记录的所有 Twb1012Regione 的列表。
2)给定一个特定的id( String codReg 字段的值, Twb1012Regione 类的PK)我想获得 Twb1012Regione 与此记录关联的对象。
如何实施这些查询?我有一些困难
TNX
答案 0 :(得分:0)
您不需要实施这些方法。 Spring Data Repository API将为您构建查询,因为JpaRepository
已经有以下方法:
这就是Spring Data Repository的重点 - 减少您编写的样板代码 。