Hibernite игнорирует ленивый fetchtype в отношениях onetomany и загрузки коллекций - PullRequest
0 голосов
/ 14 октября 2019

в моем веб-приложении при весенней загрузке 2 у меня есть объект с отношениями onetomany . Я не хочу получать эти лица. но я их получаю. я переключился на spring.jpa.open-in-view = false . в слое дао я использую данные весны jpa и методы getById () , getAll () .

мой класс сущности:

@Entity
@Table(name = "project", schema = "ci_crm")
@Data
@NoArgsConstructor
public class ProjectEntity {`

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    @ManyToOne
    @JoinColumn(name = "company_id")
    private CompanyEntity company;
    @ManyToOne
    @JoinColumn(name = "user_id")
    private UserEntity user;
    @OneToMany(mappedBy = "project")
    private List<MilestoneEntity> milestoneList;
    @OneToMany(mappedBy = "project")
    private List<NotificationEntity> notificationList;
    @OneToMany(mappedBy = "project")
    private List<CommentEntity> commentList;

Итаккак это исправить?

проблема решена: проблема была в сервисе Layaer. в классе была аннотация @Transactional.

1 Ответ

0 голосов
/ 15 октября 2019

Это может быть из-за способа, которым менеджер сущностей был создан в вашем проекте весенней загрузки. Spring-jpa создает запрос с помощью диспетчера сущностей, а Hibernate игнорирует режим выборки, если запрос был построен диспетчером сущностей.

См. Ниже тему

Как работает FetchMode в Spring Data JPA - https://stackoverflow.com/questions/29602386/how-does-the-fetchmode-work-in-spring-data-jpa

...