如何在springdata-jpa-hhibernate中使用复合键制作findby@嵌入ID


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

相关内容

  • 没有找到相关文章

最新更新