In meinem Spring Data Projekt Ich habe eine folgende Einheit:Spring Data - OR-Bedingung in einem Repository Methodennamen
@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;
....
}
Ich brauche ein Spring Data Repository Verfahren zu implementieren, die für ein CardPair
basierend auf cardPairId
aussehen wird, board
und card
. Der kompliziertere Fall für mich ist ein Card
, weil ich eine Bedingung, wo card1 = card or card2 = card
erstellen muss, ist es möglich, diese Bedingung über Spring Data Repository Methodenname bereitstellen?
Zum Beispiel
cardPairRepository.findByIdAndBoardAnd[card1 = card or card2 = card]AndSelectedCardIsNull(cardPairId, board, card);
Ist es möglich, diese Bedingung card1 = card or card2 = card
in einem Methodennamen zu übersetzen?
Sind Sie gerade auf der Suche nach ein Methodenname hier? –
Ja, ich kann diesen Methodennamen nicht mit einer erwähnten Bedingung erstellen – alexanoid
Verwenden Sie die Finder-Methoden nur für einfache Anwendungsfälle, für komplexere Fälle schreiben Sie eine Abfrage und verwenden Sie die '@ Query'-Annotation. –