peb*_*ebC 3 hibernate jpa composite-key embeddable spring-data
@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;
}
Run Code Online (Sandbox Code Playgroud)
这是我的存储库。如何制作find方法?我对此一无所知
List<Map<String, Object>> findByAccountTransactionId_trxDate(String trxDate);
Run Code Online (Sandbox Code Playgroud)
我尝试了“findByAccountTransactionId_trxDate”、“findByAccountTransactionIdTrxDate”、“findByIdTrxDate”...
小智 8
您可以使用@IdClass(https://attacomsian.com/blog/spring-data-jpa-composite-primary-key)
然后你可以只传递链接中示例中的类,那就是
repository.findById(new AccoutId(accountno,accounttype)
Run Code Online (Sandbox Code Playgroud)
这对我有用
我建议看看骆驼箱是否会改变一些东西;可能因此而无法工作。
其次,我希望该方法返回对象列表,而不是地图。对于您的情况,这是我希望可行的解决方案:
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);
}
Run Code Online (Sandbox Code Playgroud)
你可以这样写:
public interface TransactionRepository extends JpaRepository<Transaction, AccountTransactionId> {
List<Map<String, Object>> findByTrxDateAndAcctNo(String trxDate, String acctNo);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34749 次 |
| 最近记录: |