2016-09-05 11 views
2

参加し、それは3回の代わりに、一度アドレスを結合どこで見たログで春データJPA仕様は、私が仕様を持って

personRepository.findAll(spec); 

、そのJPAクエリを作成します。

アドレスは1回だけ結合される仕様を作成するにはどうすればよいですか?

答えて

7

私はそれを変更:

Specifications.where(
    (root, query, builder) -> { 
     final Join<PersonEntity, AddressEntity> addresses = root.join(PersonEntity.address, JoinType.LEFT); 
     return builder.or(
      builder.like(builder.lower(addresses.get(AddressEntity_.addressLine1)), text), 
      builder.like(builder.lower(addresses.get(AddressEntity_.addressLine2)), text), 
      builder.like(builder.lower(addresses.get(AddressEntity_.code)), text), 
     ); 
    } 
); 

、それは一度だけ参加しています。