gpt4 book ai didi

java - Spring Data - 存储库方法名称中的 OR 条件

转载 作者:IT老高 更新时间:2023-10-28 13:55:14 25 4
gpt4 key购买 nike

在我的 Spring Data 项目中,我有以下实体:

@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;

....

}

我需要实现一个 Spring Data 存储库方法,该方法将根据 cardPairIdboardcard< 查找 CardPair/。对我来说更复杂的情况是 Card 因为我需要构造一个条件 card1 = card or card2 = card

是否可以通过 Spring Data 存储库方法名称提供此条件?

例如

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

是否可以在方法名称中翻译此条件card1 = card or card2 = card

最佳答案

仅使用方法名称是不可能实现这一点的,因为您需要将最后一个条件放在括号中:id = ?和板=? AND (card1 = ? OR card2 = ?)。无法从方法名称中推断出这一点,因为它仅涵盖基本情况。

在你的情况下有三种方式:

关于java - Spring Data - 存储库方法名称中的 OR 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37115582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com