亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過jpql中的屬性(name_techno)查找數據

如何通過jpql中的屬性(name_techno)查找數據

森欄 2023-10-13 15:17:47
我正在開發一個應用程序,允許管理公司中的候選人,為此我使用 spring-boot,為了選擇掌握這種技術(Techno)的員工,我使用了請求JPQL。那么,如何通過技術找到候選人呢?在我的項目中我使用了這段代碼:1 - 類candidat.java@Entitypublic class Candidat {    @Id    @GeneratedValue(strategy=GenerationType.AUTO)    @Column(name = "candidat_id")    private int id;    private String nom;    private String prenom;    private String ville;    private int numTel;    private String mail;    private String pseudo;    private String roleCible;    private String typeContrat;    private String villeRecherchee;    @OneToMany(mappedBy="candidat")    private List<Techno> techno;    @Temporal(TemporalType.DATE)    private Date date;    @OneToMany    private List<SecteurActivites> secteurActivites;    public Candidat() {        // TODO Auto-generated constructor stub    }2-Techno.java類@Entitypublic class Techno {    @Id    @GeneratedValue    @Column(name = "techno_id")    private int id ;    private String nomTechno;    @ManyToOne(fetch = FetchType.LAZY)    @JoinColumn(name = "candidat_id", nullable = false)    @OnDelete(action = OnDeleteAction.CASCADE)    @JsonIgnore    private Candidat candidat;    public Techno() {        // TODO Auto-generated constructor stub    }    /**     * @param nomTechno     * @param candidat     */    public Techno(String nomTechno, Candidat candidat) {        super();        this.nomTechno = nomTechno;        this.candidat = candidat;    }3-我的候選人控制器@GetMapping(value = "/GetAllCandidats/{nomTechno}")public List<Candidat> afficherCandidat(@PathVariable ("nomTechno")  String nomTechno){     return  candidatdao.findByTechno(nomTechno);}4-存儲庫:@Repositorypublic interface CandidatDao extends JpaRepository <Candidat, String>{    List<Candidat> findByDate(Date date);    @Query("SELECT DISTINCT e FROM Candidat e INNER JOIN e.Techno t")    List<Candidat> findByTechno(String nomTechno);    }
查看完整描述

2 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

您可以在 JpaRepository 中聲明以下方法(也刪除 @Query,它不是必需的)。


List<Candidat> findDistinctByTechnoNomTechno(String nomTechno);

同樣在 Techno.java 中,您應該添加 @Column 注釋并將其與數據庫模式映射。


我不確定您是否故意粘貼了實體的不完整代碼。如果不是,您的實體不正確。您應該按如下方式創建 setter/getter


 private String nomTechno;


@Column(name = "NOM_TECHNO")

public String getNomTechno() {

    return nomTechno;

}


public void setNomTechno(String nomTechno){

   this.nomTechno = nomTechno;

}

對實體中的所有變量執行上述操作。


查看完整回答
反對 回復 2023-10-13
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

您不需要@Query為此添加顯式內容,如果您有正確的方法名稱,Spring 數據可以制定查詢

代替

@Query("SELECT DISTINCT e FROM Candidat e INNER JOIN e.Techno t")
List<Candidat> findByTechno(String nomTechno);

嘗試這個

List<Candidat> findDistinctByTechno_NomTechno(String nomTechno);


查看完整回答
反對 回復 2023-10-13
  • 2 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號