2013-03-02 71 views
0

我正在开发一个应用程序,并开始创建我的JPA实体(注解+ persistence.xml)。然后在我的persistence.xml文件中,我为MySql数据库创建了一个连接(连接很好)。如何坚持实体,如何从没有“主类”的实体创建表?

问题是我只是不知道如何坚持我的实体而不创建“主类”。

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

+0

你是什么意思'没有主班'?什么应该触发创建实体? – jonasnas 2013-03-02 13:03:18

+0

与java EE容器当然..我的意思是我必须有一个主要的类来做坚持的事情? – Nadia 2013-03-02 13:05:09

+0

什么是EntityManager#坚持说? – skuntsel 2013-03-02 13:07:50

回答

1

要坚持一个实体,你需要一个entityManager的实例。既然你有一个Java EE容器,你可以使用注释@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可以由容器注入。

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