Printemps de Données OU d'une condition dans un dépôt du nom de la méthode

Dans mon Ressort des Données de projet, j'ai une entité suivante:

@Entity
@NamedEntityGraph(name = "graph.CardPair", attributeNodes = {})
@Table(name = "card_pairs")
public class CardPair extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 7571004010972840728L;

    @Id
    @SequenceGenerator(name = "card_pairs_id_seq", sequenceName = "card_pairs_id_seq", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "card_pairs_id_seq")
    private Long id;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "card1_id")
    private Card card1;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "card2_id")
    private Card card2;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "selected_card_id")
    private Card selectedCard;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "board_id")
    private Board board;

....

}

J'ai besoin de mettre en œuvre un Printemps référentiel de Données de la méthode qui va chercher une CardPair basé sur cardPairId, board et card. Le cas plus compliqué pour moi, c'est un Card parce que j'ai besoin de construire un état où card1 = card or card2 = card

Est-il possible de fournir cette condition par le Printemps référentiel de Données nom de la méthode ?

Par exemple

cardPairRepository.findByIdAndBoardAnd[card1 = card or card2 = card]AndSelectedCardIsNull(cardPairId, board, card);

Est-il possible de traduire cette condition card1 = card or card2 = card dans un nom de méthode ?

Vous êtes à la recherche d'un nom de méthode ici?
Oui, je ne peux pas construire ce nom de la méthode avec une condition
Utilisez le finder méthodes que pour des cas d'utilisation simples, pour complexer les cas écrire une requête et de l'utilisation de la @Query annotation.
Je suggère fortement d'écrire la requête, vous-même en utilisant HPQL..
Merci! J'ai mis en œuvre requête JPQL et maintenant tout fonctionne très bien. @Query(value = "SELECT cp FROM CardPair cp WHERE id = :cardPairId AND board = :board AND card1 = :card OR card2 = :card AND selectedCard is null")

OriginalL'auteur alexanoid | 2016-05-09