gpt4 book ai didi

java - 按两个实体进行搜索不适用于 JpaRepository

转载 作者:行者123 更新时间:2023-12-01 18:41:48 26 4
gpt4 key购买 nike

我正在制作一个应用程序,该应用程序保存用户配置文件和具有许多交易的钱包。

这是事务类:

@Entity
@Table(name = "transactions")
public class Transaction extends BaseEntity {

@Column(name = "amount", nullable = false)
private BigDecimal amount;

@Column(name = "executed_on", nullable = false)
private LocalDateTime executedOn;

@Column(name = "is_top_up")
private boolean isTopUp;

@Column(name = "note")
private String note;

@ManyToOne(targetEntity = UserProfile.class)
private UserProfile sender;

@ManyToOne(targetEntity = UserProfile.class)
private UserProfile receiver;

public Transaction() {
}

这是钱包类

@Entity
@Table(name = "wallets")
public class Wallet extends BaseEntity {

@ManyToMany(targetEntity = Transaction.class, cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
}, fetch = FetchType.EAGER)
@JoinTable(name = "wallets_transactions",
joinColumns = @JoinColumn(name = "wallet_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "transaction_id", referencedColumnName = "id")
)
private Set<Transaction> transactions;

public Wallet() {
this.transactions = new HashSet<>();
}

public Set<Transaction> getTransactions() {
return transactions;
}

public void setTransactions(Set<Transaction> transactions) {
this.transactions = transactions;
}

public void addTransaction(Transaction transaction) {
this.transactions.add(transaction);
}
}

我想要的是,通过发送者和接收者搜索条件获取所有交易。例如,用户“A”向用户“B”汇款。我正在使用 JpaRepository。最终结果应该是 Page<Transaction>类。

到目前为止,仅使用 findAllBySender(UserProfile sender, Pageable pageable) 时,它确实有效,并且我得到了正确的交易。但是当我尝试 Page<Transaction> findAllBySenderAndReceiver(UserProfile sender, UserProfile receiver, Pageable pageable);我得到一个Page<T>当我的数据库有至少 1 条记录的测试数据时,包含 0 个元素。

最佳答案

已解决。事实证明,我犯了一个逻辑错误。谢谢大家的帮助。

关于java - 按两个实体进行搜索不适用于 JpaRepository,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59918417/

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