Giriş
In clause parent child ilişkisi varsa parent tarafına uygulanır.
Örnek
Şöyle yaparız.
In clause parent child ilişkisi varsa parent tarafına uygulanır.
Örnek
Şöyle yaparız.
public interface FileRepository extends CrudRepository<FileEntity, UUID> {
@Query("SELECT f FROM FileEntity f JOIN MetadataEntity m on f.id = m.file_id
WHERE (m.key, m.value) IN (:metadataKeyValue)")
List<FileEntity> findAllByMetadataContains(@Param("metadataKeyValue")
Map<String,String> metadataKeyValue);
}
Örnek
Elimizde şöyle bir kod olsun. Bu kod in clause seçimini child tarafına uygulamaya çalışıyor ancak beklenen sonucu vermez.
Elimizde şöyle bir kod olsun. Bu kod in clause seçimini child tarafına uygulamaya çalışıyor ancak beklenen sonucu vermez.
interface ParentRepo extends JpaRepo<Parent,Integer> {
@Query("SELECT p FROM Parent p JOIN p.children c WHERE p.id = :parentId ando
c.id IN(:childIds")
Parent getParentByIdAndChildIds(int parentId, List<Integer> childIds)
}
Açıklaması şöyle.My expectation is that callingBelki sadece child'lara erişmek için şöyle yaparız.
parentRepo.getParentByIdAndChildIds(1, Arrays.asList(1,2,3))
will return the parent object with only 3 child entities attached, but instead, I get ALL of the children (i.e. children with ids from 1-10).
interface ChildRepository extends JpaRepository<Child, Integer> {
@Query("SELECT c FROM Child c WHERE c.parent.id = :parentId and c.id IN(:childIds)")
List<Child> getParentByIdAndChildIds(int parentId, List<Integer> childIds)
}