2016-06-21 4 views
0

나는. ""나는 엔티티라는 이름의 한 수단 '. 다른 기업을 포함 어떤 엔티티의 PK를 사용하여 일부 개체를 삭제 을을QueryDsl을 사용하지 않고 포함 된 엔티티의 pk로 엔티티를 삭제할 수있는 또 다른 옵션이 있습니까? (

그것을 시도하고 그리고 그것은 또 다른 엔티티 B.

있다 그리고

. B의 PK를 사용하여 내 엔티티 A를 삭제하고자하지만 방법 'deletByB'에 의한 경우를 제외 JpaRepository 몇 가지 방법을 찾을 수 coulden't. 내가 사용하여 내 엔티티 A를 삭제하지 않으

삭제자 자격.

public interface ARepository extends JpaRepository<AEtt, Long>{ 
    void deleteByB(BEtt b); 
} 

나는 다른 방법을 발견했다.

QueryDslRepositorySupport를 사용하십시오.

@Repository("BRepository") 
public class BExtendRepositoryImpl extends QueryDslRepositorySupport implements BExtendRepository{ 
public BExtendRepositoryImpl() { 
    super(BEtt.class); 
} 

@Override 
public void deleteByAId(long aId) { 
    QBEtt b = QBEtt.bEtt; 
    JPQLQuery query = from(b); 
    query.where(b.a.aId.eq(aId)); 
} 

}


하지만 JpaRepository를 사용하고 싶습니다. JpaRepository에서 포함 된 Entity의 PK를 사용하여 Entity를 삭제할 수 있습니까?

여기에 몇 가지 힌트를 얻을 수 있기를 바랍니다. 고맙습니다! 좋은 하루 되세요! :-)

+0

엔티티 A와 B 중 어떤 관계가 있습니까? 일대일 또는 일 대 다형? – Simon

답변

0

당신의 엔티티 A가 Order이라고 가정하고 B는 Customer 그리고 그들은, 을 Order.customer 관련 고객 객체를 가리키고 Customer.id 고객의 PK입니다 일대 다 관계를, 당신은 할 수 있어야한다 공유

@Repository 
public OrderRepository extends JpaRepository<Order, Long> { 
    Long deleteByCustomer_Id(String id); 
} 

그러나 밑줄은 선택 사항입니다.

+0

답변 해 주셔서 감사합니다. 좋은 하루 되시길 바랍니다! :-) –