Невозможно лениво загрузить отношения JPA - PullRequest
0 голосов
/ 17 февраля 2019

Я работаю с Jhipster.Я не могу лениво собирать клиентов.

Я сделал JDL вроде этого ...

 PROPERTY
 id
 ...

 CUSTOMER
 id
 ...

 CUSTOMER_PROPERTY
 id
 customer_id
 property_id
 value

 relationship OneToMany {
    Customer to CustomerProperty                    
 }
 relationship ManyToOne {
    CustomerProperty to Property    
 }

Мои домены

Customer.java

 @OneToMany(mappedBy = "customer", fetch = FetchType.LAZY)
 @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
 private Set<CustomerProperty> customerProperties = new HashSet<>();

Property.java no mapping

CustomerProperty.java

 @ManyToOne
 private Property property;

 @ManyToOne
 @JsonIgnoreProperties("customerProperties")
 private Customer customer;

Я уже пытался явно указать set fetch = FetchType.LAZY, но он продолжает приносить полный полный объект Customer со всем списком CustomerProperties

Iхотел бы понять, почему выборка не работает

1 Ответ

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

Отладка не является хорошим механизмом для оценки, если коллекция была загружена лениво или нет.Сам отладчик может инициировать инициализацию.

Вместо использования отладчика используйте

org.hibernate.Hibernate.isInitialized(yourCollection) 

, чтобы проверить, был ли он инициализирован после загрузки вашей сущности.

Если этометод возвращает false, но вы все еще подозреваете, что на более позднем этапе коллекция будет инициализирована, вам следует искать ошибку при возможном последующем вызове (где-то еще).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...