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

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

Spring boot JPA 從 crudRepository 查詢中獲取特定列

Spring boot JPA 從 crudRepository 查詢中獲取特定列

jeck貓 2021-12-01 19:52:03
我試圖從我的 Employee 類中的用戶類中獲取“名稱”字段,這樣我就可以避免進行額外的查詢來獲取用戶名。目前,我只能通過這種方式獲取 user_id我的用戶類@Entity @Table(name="user", schema = "public") @Getter @Setter @NoArgsConstructor @Accessors(chain = true)public class User implements Serializable{    private @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "user_id") Long id;    private @Column(unique = true) String email;    private String name;}我的員工班@Entity @Table(name = "employee",schema = "public") @Getter @Setter @NoArgsConstructor @Accessors(chain = true)public class Employee implements Serializable {    private @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "employee_id") Long id;    @JsonIgnore @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "fk_user_id",insertable = false,updatable = false) private User user;    private @Column(name="fk_user_id") Long userId;}我知道不選擇名稱就無法檢索名稱,因此我嘗試在 crudRepository 上使用自定義查詢public interface EmployeeRepository extends CrudRepository<Employee, Long>{    @Query(value = "SELECT employee.*, public.user.name FROM public.employee INNER JOIN public.user ON public.user.user_id = employee.fk_user_id ", nativeQuery = true)    List<Employee> findEmployees();}查詢返回我期望的內容,但我不知道如何在我的 Employee 類中獲取結果列“name”歡迎任何幫助或指導,感謝閱讀
查看完整描述

2 回答

?
當年話下

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

在我看來,您應該選擇Employeeonly 然后從 fetched 中獲取名稱User。此外,我認為您不需要本地查詢:


@Query(value = "SELECT e FROM public.employee e INNER JOIN FETCH e.user")

    List<Employee> findEmployees();

}

然后:


for(Employee e: findEmplyees){

    String name = e.getUser.getName();

}


查看完整回答
反對 回復 2021-12-01
?
侃侃爾雅

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

當您想要獲取比實體類中描述的更多的數據,并且不想獲取惰性關系時,您可以創建一個新類,例如一個包含您想要獲取的所有屬性的 DAO 類。因此,在您的情況下,可能會EmployeeDAO使用員工實體的所有屬性加上userName. 然后將其用作返回的集合:


@Query(your query)

List<EmployeeDAO> findEmployees();


查看完整回答
反對 回復 2021-12-01
  • 2 回答
  • 0 關注
  • 252 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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