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

标签 java spring spring-data-jpa jpql

我有一个嵌入了 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/

相关文章:

java - 从下一个类向 JFrame 添加组件

java - 创建对象并在构造函数中使用它

java - 如何根据父对象和子对象的属性获取一对多关联对象

java - 如何在java中进行整数枚举声明

json - 如何在 REST 中处理 @OneToMany 关系

java - 为什么此 Java 代码为现有键值打印 null?

java - 将switch语句放入循环java中

java - Spring框架REST多值请求参数空数组

java - spring cloud netflix jersey 版本冲突

spring - 在 Spring 中从 couchbase 读取字节数组