FetchType LAZY не работает для ассоциации OneToMany с данными весны - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть две сущности ученик и адрес.Я использую FetchType.LAZY.Но когда я выбираю студента с помощью весенних данных findById, он выбирает список адресов, связанных со студентом.

@Table(name = "Student")

открытый класс Student {

@Column(name="name")
private String name;

@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "STUDENT_ID")
@SequenceGenerator(name = "STUDENT_ID", sequenceName = "STUDENT_ID_SEQ")
@Column(name="STUDENT_ID")
 private Long id;


@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.LAZY)
@JoinColumn(name = "student_id")
private List<Address> address; 

}

@ Table (name = "Address") открытый класс Address {

@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "ADDRESS_ID")
@SequenceGenerator(name = "ADDRESS_ID", sequenceName = "ADDRESS_ID_SEQ")
@Column(name="ADDRESS_ID")
private Long id;

private String desc;

}


Необязательно Необязательно = respository.findById (id);Student s = необязательный.связанный адрес.

Поскольку мы упоминали о отложенной загрузке, он не должен запускать второй файл Excel.

1 Ответ

0 голосов
/ 22 февраля 2019

Предлагаю изменить: общедоступный класс Student {

@ Column (name = "name") private String name;

@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "STUDENT_ID")
@SequenceGenerator(name = "STUDENT_ID", sequenceName = "STUDENT_ID_SEQ")
@Column(name="STUDENT_ID")
 private Long id;


@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.LAZY,  mappedBy="student")
private List<Address> address; 
}

А:

    @Table(name = "Address") public class Address {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "ADDRESS_ID")
    @SequenceGenerator(name = "ADDRESS_ID", sequenceName = "ADDRESS_ID_SEQ")
    @Column(name="ADDRESS_ID")
    private Long id;

    private String desc;

 @ManyToOne(fetch=FetchType.LAZY) 
     public Student student;
    }

@ JoinColumn позволяет стороне @OneToMany, отвечающей за ассоциацию, а не лучшему выбору, попробуйте использовать атрибут «mappedBy» на стороне @OneToMany.

...