0
@Query 주석이 필요하지 않은지 궁금해서 Spring 데이터가 아래 엔티티 관계에 대한 메소드 이름과 메소드 매개 변수를 기반으로 JPA 쿼리를 구성하게합니다. 특정 항목과 관련된 ItemLocations 목록을 검색하고 싶습니다. 아래 서명을 시도했지만 @Query 없이는 작동하지 않았습니다. Item 객체 대신 Item.id를 전달하는 것이 더 효율적입니까 (효율적/효과적입니까)?메소드 이름과 객체 매개 변수를 사용하는 스프링 데이터 쿼리 생성
봄 데이터 버전 : 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;
}