2013-09-24 47 views
0

我想知道是否有可能不需要@Query註釋,並讓Spring Data根據我的方法名稱和方法參數爲以下實體關係構造JPA查詢。我想檢索與特定項目相關的ItemLocations列表。我嘗試了下面的簽名,沒有@Query就沒有用。傳遞Item.id而不是Item對象本身是否更合適(高效/有效)?使用方法名稱和對象參數構建Spring數據查詢

春數據版本:1.3.4.RELEASE

工作彈簧數據存儲庫API:

@Query("FROM ItemLocation where item = ?") 
public List<ItemLocation> getAllItemLocations(Item item); 

所需的彈簧數據存儲庫API:

public List<ItemLocation> findAllItemLocations(Item item); 

JPA Enties :

@Entity 
    public class ItemLocation { 
     @ManyToOne 
     @JoinColumn(name="fk_item_id") 
     public Item getItem() { 
      return this.item; 
     } 
     public void setItem(Item item) { 
      this.item = item; 
     } 
     @Id 
     @GeneratedValue 
     public long getId() { 
      return this.id; 
     } 

     public void setId(long id) { 
      this.id = id; 
     } 

     private Item item; 
     private long id; 
    } 

    @Entity 
    public class Item { 
     @OneToMany(mappedBy="item", orphanRemoval=true) 
     @Cascade({org.hibernate.annotations.CascadeType.PERSIST}) 
     public Set<ItemLocation> getItemLocationList() { 
      return this.itemLocationList; 
     } 
     public void setItemLocationList(Set<ItemLocation> list) { 
      this.itemLocationList = list; 
     } 
     @Id 
     @GeneratedValue 
     public long getId() { 
      return this.id; 
     } 

     public void setId(long id) { 
      this.id = id; 
     } 

     private Set<ItemLocation> itemLocationList 
      = new HashSet<ItemLocation>(); 
     private long id; 
    } 

回答

0
public List<ItemLocation> findAllByItem(Item item); 

(在儲存庫ItemLocationRepository)

相關問題