@Embeddable
public class AccountTransactionId implements Serializable {
private String trxDate;
private String acctNo;
private int trxNo;
}
@Entity
public class Transaction {
@EmbeddedId
private AccountTransactionId accountTransactionId;
private int amt;
private int fee;
private String cancelYn;
}
这是我的存储库。如何制作find方法?我对一无所知
List<Map<String, Object>> findByAccountTransactionId_trxDate(String trxDate);
我尝试了"findByAccountTransactionId_trxDate"、"findByAccountTransactionIdTrxDate"one_answers"findByIdTrxDate"。。。
您可以使用@IdClass(https://attacomsian.com/blog/spring-data-jpa-composite-primary-key)
然后你可以在链接中传递示例中的类,它将是
repository.findById(new AccoutId(accountno,accounttype)
这对我有效
如果会有所改变,我建议查看一下驼色案例;可能会因此而无法工作。
其次,我希望该方法返回一个对象列表,而不是映射。在您的情况下,这是我期望工作的解决方案:
public interface TransactionRepository extends JpaRepository<Transaction, AccountTransactionId> {
/**
* here rename accountTransactionId to id
* and trxDate to trxdate
*/
List<Object> findByIdTrxdate(String trxDate, String acctNo);
List<Object> findByAccountTransactionIdTrxDate(String trxDate, String acctNo);
}
您可以这样写:
public interface TransactionRepository extends JpaRepository<Transaction, AccountTransactionId> {
List<Map<String, Object>> findByTrxDateAndAcctNo(String trxDate, String acctNo);
}