我已阅读并确保我的注释是正确的。我正在使用spring数据jpa并获取带有以fetch类型注释的子关系的父类作为EAGER但是JPA没有提取子对象。
父实体:
@Entity
@Table(name = "customer")
public class Customer {
@Id
@Column(name = "Customer_ID")
@GeneratedValue(strategy = GenerationType.AUTO)
private int customerid;
@NotNull
@Size(min = 3, max = 30)
private String name;
@OneToMany(mappedBy = "customers", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<Car> cars;
子实体:
@Entity
@Table(name = "car")
public class Car {
@Id
@Column(name = "CAR_ID")
@GeneratedValue(strategy = GenerationType.AUTO)
private int carId;
private String make;
@ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.EAGER)
@JoinColumn(name = "customerid")
private Customer customers;
客户存储库:
@Repository
@Transactional
public interface CustomerRepository extends JpaRepository<Customer, Integer>{
Set<Customer> findByName(String name);
获取客户数据的存储库:
public Data getCustomer(int id) {
Data data = new Data();
try {
Customer customer = customerRepository.findOne(id);
这个存储库方法只提取客户,虽然我已经注释了它以获取渴望拉取子对象。