1
약간의 문제가 있습니다. JPA Criteria를 사용하여 동적 선택 (Where 절이 선택적 변수를 가질 때 기준을 사용하여 ...)을 만들지 만 내 엔티티 중 하나에 사용자 열을 포함하고 사용자 ID를 확인해야하는 EmbeddedId가 있습니다.JPA EmbeddedId의 조건 및 조건
여기 내 사업체입니다.
@Entity
@Table(name = "user_like")
public class UserLike extends AbstractTimestampEntity implements Serializable {
@EmbeddedId
private UserLike.userLikePK userLikePK= new UserLike.UserLikePK();
...
with all the setter and gets
...
@Embeddable
public static class UserLike implements Serializable{
@ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
private User user;
... (and an other column, not important for now=
}
}
사용자 지금이 내 쿼리 모습입니다 열 사용자 ID를
를 포함하는 다른 엔티티입니다.
Root<Poi> p = cq.from(Poi.class);
Join<Poi,UserLike> ul = p.join("userLike");
List<Predicate> predicates = new ArrayList<Predicate>();
Predicate predicate = cb.like(cb.upper(p.<String>get("name")), "%" + poiName.toUpperCase() + "%");
predicates.add(predicate);
Predicate predicate2 = cb.equal(ul.get("userLikePK.user.idUser"), userId);
predicates.add(predicate);
//multi select because i need some info from p and ul as well....
cq.multiselect(p, ul);
는 이제 predicate2 분명히 나에게 오류가 발생 "과 속성을 찾을 수 없습니다하여 지정된 이름 [userPoiLikePK.user.idUser]"
누군가가 내 "동일한"술어에 추가하는 방법을 말해 줄 수
사용자 ID?
추신 :이 내가 보관할 PA 쿼리입니다 :
SELECT p,ul FROM Poi p LEFT JOIN p.userLike ul WHERE p.name like :name AND ul.user.idUser=:userId
감사합니다!
감사합니다. – Johny19