JPA坚持不写入数据库

Fir*_*ter 5 java jpa eclipselink

我只是想了解JSF和JPA,但是每当我尝试将一个对象持久保存到数据库中时,它似乎都不会消失。这是我正在使用的代码:

@Named
@ManagedBean
@SessionScoped
public class BestemmingController implements Serializable{

@PersistenceUnit(unitName="RealDolmenTravelShopPU")
@PersistenceContext(unitName="RealDolmenTravelShopPU")

EntityManagerFactory emf = null;
public void submit(){


        try{
            emf = Persistence.createEntityManagerFactory("RealDolmenTravelShopPU");

            EntityManager em = emf.createEntityManager();

            //EntityTransaction et = em.getTransaction();
            //et.begin();

            Bestemming nieuweBestemming = new Bestemming();

            Land gezochtLand = em.find(Land.class, selectedLand);

            nieuweBestemming.setLand(gezochtLand);
            nieuweBestemming.setNaam(bestemmingNaam);

            em.persist(nieuweBestemming);

            //et.commit();
            //em.flush();
            em.close();
        }catch (Exception e){
            e.printStackTrace();
        }finally{
            emf.close();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我尝试使用EntityTransaction,但它只是停止了我的应用程序,没有任何错误或任何其他信息。所以我省略了它,但仍然没有写掉。因此,我尝试了分别调用flush,但是那也没做。我真的很困惑为什么这不起作用。这可能是一些新手的错误,但是如果有人可以帮助我,我会喜欢的。

提前致谢!

Chr*_*ris 0

首先,你能写入日志吗?在指定使用 JTA 的持久性单元时启动事务将引发异常,因此您可能刚刚在容器日志文件中丢失了异常。

其次,这是一个 JTA PU,因此它需要启动一个与 EM 关联的 JTA 事务,并且您需要注入它们而不是自己创建工厂。首先查看此处的 JPA 应用程序服务器示例,了解它们是如何设置的: http: //wiki.eclipse.org/EclipseLink/Examples/JPA