Я использую JPA с Hibernate в моем приложении весенней загрузки.Всякий раз, когда я пытаюсь получить сущности, используя методы jpa, он возвращает сущность плюс все ассоциации, присутствующие внутри нее.Я хотел получить связанные сущности по требованию (отложенная загрузка), поэтому я предоставил fetch = FetchType.LAZY в своем доменном классе.Но все равно он возвращает все записи.
Ниже приведен код: Case.java
@Entity
@Table(name="smss_case")
public class Case implements Serializable {
/**
*
*/
private static final long serialVersionUID = -2608745044895898119L;
@Id
@Column(name = "case_id", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer caseId;
@Column( name="case_title" )
private String caseTitle;
@JsonManagedReference
@OneToMany(mappedBy="smmsCase", cascade = CascadeType.ALL, fetch=FetchType.LAZY)
private Set<Task> tasks;
}
}
Task.java
@Entity
@Table(name="task_prop")
public class Task implements Serializable {
/**
*
*/
private static final long serialVersionUID = -483515808714392369L;
@Id
@Column(name = "task_id", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer taskId;
@Column(name="task_title")
private String taskTitle;
@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn( name="case_id", nullable=false)
private Case smmsCase;
// getters and setters
}
Service.java
public Case getCases(Integer id) {
return dao.findById(1).get();
}
Dao.java
public interface ServiceDao extends JpaRepository<Case, Integer>{
}
{
"caseId": 1, "caseTitle": "эргономика", "tasks": [
{
"taskId": 1, "taskTitle": "ca"}, {
"taskId": 2, "taskTitle":"hazards"}, {
"taskId": 3, "taskTitle": "лекарство"}]}
Любая помощь будет высоко оценена!
Спасибо!