我是Hibernate和JPA的新手,我对这个注释有问题。有人可以用简单的词语向我解释这个注释实际上在做什么,因为在这种情况下我很难理解文档。
编辑我理解持久化上下文是什么,但在代码中我有类似的东西:
@Repository
public class AbstractRepository<E extends Identifable> implements IRepository<E> {
private Class<E> clazz;
@PersistenceContext
protected EntityManager em;
我对@PersistenceContext正在做的事情有疑问。对不起,也许我不具体。
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
如果您不需要做一些特殊的事情,您可以定义一个没有任何实现的存储库接口。