如何持久化实体,如何从没有“主类”的实体创建表?

时间:2013-03-02 12:47:16

标签: java java-ee jpa persistence jpa-2.0

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

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

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

1 个答案:

答案 0 :(得分: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。

此外,您可以在控制器上正确处理交易。