我想實現連接,但我面臨錯誤。我有產品表和商店表。產品表引用存儲表通過外鍵,如下圖所示:我的JPQL查詢出了什麼問題?
Product.java
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long pId;
private String model;
private String brand;
private byte[] image;
private Long price;
private String currency;
private String transmissionType;
private String fuelType;
@ManyToOne
@JoinColumn(name="storeId")
private Store store;
// … getters and setters
}
現在,我展示Store.java
@Entity
public class Store {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long storeId;
private String locality;
private String city;
private String state;
private String zipCode;
private String phone;
// … getters and setters
}
現在,我將展示知識庫
public interface ProductRepo extends JpaRepository<Product, Long> {
@Query("select p from Product p join p.storeId s where p.storeId = s.storeId and s.city = :city")
public List<Product> findByCity(@Param("city") String city);
@Query("select p from Product p join p.storeId s where p.storeId = s.storeId and s.state = :state")
public List<Product> findByState(@Param("state") String state);
}
現在,錯誤是由於最後兩個查詢實現了連接。我想要做的是獲得所有商店在特定城市或州的產品,如上所見。
我遇到的錯誤是:
錯誤開始的ApplicationContext。要顯示自動配置 報告,請啓用'debug'重新運行您的應用程序。 2016年10月16日 09:53:25.203錯誤16132 --- [主] osboot.SpringApplication:應用程序啓動失敗
org.springframework.beans.factory.UnsatisfiedDependencyException: 錯誤名爲「創造豆catalogueServiceController ': 通過字段'productRepo'表示的不滿足依賴性;嵌套0異常是org.springframework.beans.factory.BeanCreationException: 創建名爲'productRepo'的bean時出錯:調用init方法 失敗;嵌套異常是java.lang.IllegalArgumentException: 查詢方法的驗證失敗public abstract java.util.List com.practice.rest.assignment1.repository.ProductRepo.findByCity(java.lang.String)! 等等......
查詢中有什麼錯誤?
好的,您的回答是正確的,只是您忘記在'產品'和'加入'之間添加'p'。查詢應該從Product p連接p.store中選擇p作爲store store.city =:city。休息是正確的。歡呼聲! –