从JPA子实体获得价值

时间:2018-09-16 12:36:53

标签: java spring hibernate spring-boot spring-data-jpa

如何使用Spring-data-jpa从childofchild实体检索值?

例如Person Entity ->Account Entity ->Debit_Account Entity

借方帐户实体包含我要检索的值dbtAmount。

我是spring和spring-data-jpa存储库的新手,使用查找方法无法从childofchild实体获取详细信息。

1 个答案:

答案 0 :(得分:0)

我们必须正确实现实体之间的关系。例如

  • 一对一
  • 一对多
  • 多对多

如果已正确配置此属性,则应该能够获取人员实体,使用getAccounts方法从该实体获取Account实体,并使用getDebitAccounts方法从该实体获取DebitAccount。

JPA Relationship Mapping Concept https://www.mkyong.com/hibernate/hibernate-one-to-many-relationship-example/

假设这种关系是一对多的,我添加了更多的解释,

enter image description here

import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.OneToMany;

@Entity
public class Person {

@Column
private String username;

@Column
private String email;

@OneToMany(mappedBy="user")
private Set<Account> accounts;

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public Set<Account> getAccounts() {
    return accounts;
}

public void setAccounts(Set<Account> accounts) {
    this.accounts = accounts;
}
}

import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.OneToMany;

@Entity
public class Account {

@Column
String name;

@OneToMany(mappedBy="account")
private Set<DebitAccount> debitAccounts;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public Set<DebitAccount> getDebitAccounts() {
    return debitAccounts;
}

public void setDebitAccounts(Set<DebitAccount> debitAccounts) {
    this.debitAccounts = debitAccounts;
}

}

import javax.persistence.Column;
import javax.persistence.Entity;

@Entity
public class DebitAccount {

@Column
String name;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}
}

希望这会有所帮助。