相关疑难解决方法(0)

JPA和Hibernate中的LazyInitializationException

我知道这个问题在这里和互联网上已被多次询问,我已经阅读了很多这些答案,但我仍然不明白解决这个问题的正确方法.我正在尝试使用Spring MVC和JPA,每次访问一个延迟加载的属性时,我都会得到一个LazyInitializationException.

以下是我正在尝试的一些代码:

@Repository
public class MyDAO {
    private static final Logger logger = LoggerFactory.getLogger(MyDAO.class);

    @PersistenceContext
    private EntityManager em;

    @Transactional
    public void logDOI() {
        DOI myDOI = em.find(DOI.class, Long.valueOf(1));

        // This line gives the expected output
        logger.info("Fetched DOI: " + myDOI.getDoiKey());

        // This line throws the LazyInitalizationException
        for(DOIMembership m : myDOI.getDoiMemberships()) {
            logger.info("Got DOI Membership id: " + m.getId());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在访问的实体:

@Entity
@Table(name="DOI")
public class DOI implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @SequenceGenerator(name="DOI_ID_GENERATOR", …
Run Code Online (Sandbox Code Playgroud)

spring hibernate jpa

14
推荐指数
1
解决办法
3万
查看次数

JPA 2 CriteriaQuery中的FetchMode

我目前正处于从Hibernate切换到纯JPA 2的过程中(顺便说一下,这比我最初期望的要长得多).
到目前为止,我遇到的最大问题是找到一种方法来强制加载懒惰属性.
使用Hibernate,这是使用:criteria.setFetchMode("person", FetchMode.JOIN);.
有没有办法用JPA 2做到这一点?

jpa-2.0

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

hibernate ×1

jpa ×1

jpa-2.0 ×1

spring ×1