[英]Why am I obtaining this error trying to perform JdbcTemplate query using prepared statement in a Spring Boot application?
[英]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.