0

我正在开发一个应用程序,并开始创建我的 JPA 实体(annotation + persistence.xml)。然后在我的 persistence.xml 文件中,我为 MySql 数据库创建了一个连接(连接很好)。

问题是我只是不知道如何在不创建“主类”的情况下保留我的实体。

我是否必须为要创建的每个实体运行我的主类?

4

1 回答 1

1

要持久化一个实体,你需要一个 entityManager 的实例。由于您有一个 Java EE 容器,因此您可以使用某个 bean@PersistenceContext中的注释获取 entityManager 的实例

我说的一些豆子是什么意思?它是一个由 Java EE 容器管理的 bean。因此,例如,您必须像这样定义一个 bean:

@Stateless
public class MyController{
    @PersistenceContext
    private EntityManager em;

    public void persistIt(Object anEntity){
        em.persist(anEntity);
    }
}

注释@Stateless向容器指示它必须管理此类并在需要时负责提供 entityManager 的实例。

因此,要准确回答您的问题:只要您找到访问 entityManager 实例的方法,就不必让另一个类来持久化实体。

但是

  • 这绝对不是最佳实践。
  • 要利用 entityManager 注入:您必须使用另一个托管 bean,以便容器可以注入 entityManager。

此外,控制器是您可以正确处理交易的地方。

于 2013-03-02T13:20:18.163 回答