有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在JPA存储库方法中使用部分复合密钥?

我有一个嵌入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); 

我试过了,但还是没有成功


共 (1) 个答案

  1. # 1 楼答案

    我已经重写了你的类,还可以添加存储库函数。这是我的实现,你可以考虑看一下。

    这是课程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的主键。你的桌子可能也需要这样的东西