【问题标题】:@PersistentContext: Could someone explain that annotation?@PersistentContext:有人可以解释那个注释吗?
【发布时间】:2019-07-26 06:56:50
【问题描述】:

我是 Hibernate 和 JPA 的新手,我对这个注释有疑问。有人可以用简单的话解释一下这个注释实际上在做什么,因为在这种情况下文档对我来说很难理解。

编辑 我了解持久上下文是什么,但在代码中我有类似的东西:

@Repository
public class AbstractRepository<E extends Identifable> implements IRepository<E> {

private Class<E> clazz;

@PersistenceContext
protected EntityManager em;

我对@PersistenceContext 所做的事情有疑问。抱歉,可能我没说具体。

【问题讨论】:

标签: java hibernate jpa


【解决方案1】:

PersistenContext 知道您的 DataSource、JPA 属性、实体等。 正如这里已经描述的:What is Persistence Context? 您可以使用它在存储库中执行一些手动操作。例如。处理交易。 我在设计糟糕的数据库的旧项目中使用了几次。 通常它不应该是必要的。 如果您的数据库设计良好,Spring 几乎可以处理所有事情。

也许这对你有帮助:

    public void saveMovie() {
    EntityManager em = getEntityManager();

    em.getTransaction().begin();

    Movie movie = new Movie();
    movie.setId(1L);
    movie.setMovieName("The Godfather");
    movie.setReleaseYear(1972);
    movie.setLanguage("English");

    em.persist(movie);
    em.getTransaction().commit();
}

https://www.baeldung.com/the-persistence-layer-with-spring-and-jpa

https://www.baeldung.com/hibernate-entitymanager

如果您不需要做一些特别的事情,您可以只定义一个存储库接口而不需要任何实现。

https://www.baeldung.com/spring-data-repositories

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-29
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    • 2013-01-09
    • 2012-04-19
    相关资源
    最近更新 更多