I have a class with embedded Id
JavaScript
x
@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..
JavaScript
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
.
JavaScript
@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
.
JavaScript
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.