我有一个嵌入了 Id 的类(class)
@Entity
@Table(name="account_table")
Public class AccountLink {
@EmbeddedId
private AccountLinkKey accountLinkKey;
//Rest of code
}
@Embeddable
Public class AccountLinkKey {
//Rest code here
@ColumnName(name="i am hiding")
private String segAccount;
@ColumnName(name="i am hiding")
private String secAccount;
//Rest of code
}
现在在我的存储库中,我希望有一种方法只能通过 secAccount
进行搜索,那么我应该如何编写 findBy..
List<AccountLink> findBy...(String secAccount);
我尝试了 findByAccountLinkKeySecAccount(String secAccount)
但仍然没有成功。
最佳答案
我已经重写了你的类,也可以添加存储库功能。这是我的实现,您可能会考虑看一看。
这是 AccountLink.java
类。
@Entity
@Table(name = "account_table")
public class AccountLink {
@Column(name = "id")
public Long id;
@EmbeddedId
private AccountLinkKey accountLinkKey;
@Embeddable
public class AccountLinkKey {
@Column(name = "seg_account")
private String segAccount;
@Column(name = "sec_account")
private String secAccount;
}
}
还有 AccountLinkRepository.java
。
public interface AccountLinkRepository extends JpaRepository<AccountLink, Long> {
AccountLink findAccountLinkByAccountLinkKey_SecAccount(String secAccount);
}
我在 AccountLink
类中添加了一个 id
列作为 account_table
的主键。你的 table 可能也需要这样的东西。
关于java - 如何在 JPA 存储库方法中使用部分复合键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49435969/