簡體   English   中英

Spring 引導:使用外鍵執行@query

[英]Spring Boot : perform a @query using a foreing key

我正在嘗試使用如下的外鍵獲取 bean:

-- 第一個包含外鍵的 bean (user_id: id):

 @Entity @Table public class Class_1{ @Id @SequenceGenerator( //code ) @GeneratedValue( //code ) private Long id; @OneToOne @JoinColumn(name = "user_id", referencedColumnName = "id") private User user; /** * constructors, getters and setters, ... */ }

-- 我想使用外鍵填充的第二個 bean:

 @Entity @Table public class User{ @Id @SequenceGenerator( // code ) @GeneratedValue( //code ) private Long id; /** * attributes, constructors, getters and setters, ... */ }

這是我的表格:

Table Class_1
+ ID + USER_ID +
+----+---------+
+ 1  +   1     +

Table User
+ ID + PARAM_1 + PARAM_2 + ... + PARAM_N +
+----+---------+---------+-----+---------+
+ 1  +  value_1+ value_2 + ... + value_n +

現在這是我嘗試執行的查詢:

 @Query("SELECT * FROM CLass_1 c WHERE c.user_id.id=?1") public List<Class_1> findClass_1ByUser(Long userId);

或(但仍然不起作用:

 @Query("SELECT * FROM CLass_1 c WHERE c.user_id=?1") public List<Class_1> findClass_1ByUser(Long userId); @Query("SELECT * FROM CLass_1 c WHERE c.user=?1") public List<Class_1> findClass_1ByUser(User user);

異常:查詢方法 public abstract java.util.List package.class_1.Class_1Repository.findClass_1ByUSer(java.lang.Long) 驗證失敗!

有什么幫助嗎?

提前謝謝你:)

Since you declared a HQL query you may either replace the * with the object alias SELECT c FROM CLass_1 c WHERE c.user_id=?1 or remove the SELECT eg FROM CLass_1 c WHERE c.user_id=?1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM