I have a class with embedded 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 }
Now in my repository I want to have a method to search only by secAccount
, so how should I write findBy..
List<AccountLink> findBy...(String secAccount);
I tried findByAccountLinkKeySecAccount(String secAccount)
but still no success.
Advertisement
Answer
I have rewritten your class and could add repository function as well. Here’s my implementation which you might consider taking a look at.
Here’s the class 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; } }
And the AccountLinkRepository.java
.
public interface AccountLinkRepository extends JpaRepository<AccountLink, Long> { AccountLink findAccountLinkByAccountLinkKey_SecAccount(String secAccount); }
I have added an id
column in the AccountLink
class as the primary key of the account_table
. You might need something like this as well for your table.