我有一个嵌入了Id的类
@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)
但仍然没有成功。
答案 0 :(得分:2)
我已经重写了你的类,并且还可以添加存储库功能。这是我的实现,您可以考虑一下。
这是班级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);
}
我在id
类中添加了AccountLink
列作为account_table
的主键。你的桌子也可能需要这样的东西。
答案 1 :(得分:1)
通常,当您想对JPA中的嵌入式列执行某些操作时,请使用下划线('_')绑定列。
示例:
findBy<Entity_Class_Column_Name>_<Embaded_Class_Column_Name>(...)