JPA, как лениво загрузить коллекцию? - PullRequest
0 голосов
/ 23 сентября 2019

Посоветуйте, пожалуйста, как лениво загрузить карту "Groupunit_from"?Как открыть сессию JPA и транзакцию?

 @ElementCollection(targetClass=String.class,fetch=FetchType.LAZY)
    @CollectionTable(name="place_definer_groupunit_from",joinColumns=@JoinColumn(name="groupunit_from"))
    @MapKeyColumn(name="id")
    @MapKeyClass(String.class)
    @Column(name="ordinal",nullable=false)
    private Map<String,String> Groupunit_from=new HashMap<>();//

Ответы [ 2 ]

2 голосов
/ 23 сентября 2019

Коллекции загружаются Lazily по по умолчанию .

Вам не нужно ничего указывать, чтобы загружать коллекцию лениво.

Для инициализации сеанса и транзакции в JPA

EntityManagerFactory emf = Persistence.createEntityManagerFactory("PersistentUnitName");
EntityManager em = emf.createEntityManager();

// to begin a transaction
em.getTransaction().begin();

// here you can flush or persist

// to commit a transaction
em.getTransaction().commit();
0 голосов
/ 23 сентября 2019

вы уже упомянули "fetch = FetchType.LAZY", поэтому jpa будет загружать эти элементы лениво.Если вы наблюдаете запросы, запущенные в приложении во время отладки, вы заметите, что запросы для заполнения этой карты будут выполняться при первом использовании этой карты в вашем коде Java.

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