java emf持久化_EntityManager无法使用持久化将元素保存到数据库

我遇到了使用EntityManager将元素持久保存到数据库的问题。根据我发现的答案,我在DaoJpa中尝试了这4种方法来执行此操作,但仍然失败。在这里,我附上了我尝试过的四种方法:

控制器部分中的代码:

@Transactional

SmartProduct smartProduct = new SmartProduct();

smartProduct.setName("Dove Soap");

smartProductDao.persist(smartProduct);

1.道霸:

@Transactional

public void persist(SmartProduct smartProduct) {

entityManager.persist(smartProduct);

不起作用!

2。

@Transactional

public void persist(SmartProduct smartProduct) {

entityManager.persist(smartProduct);

entityManager.flush();

我得到的例外:没有正在进行的交易

3。

@Transactional

public void persist(SmartProduct smartProduct) {

EntityTransaction emTransaction = entityManager.getTransaction();

emTransaction.begin();

entityManager.persist(smartProduct);

emTransaction.commit();

entityManager.close();

我得到的异常:不允许在共享的EntityManager上创建事务-使用Spring事务或EJB CMT代替

4。

@Transactional

public void persist(SmartProduct smartProduct) {

EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");

EntityManager em = emf.createEntityManager();

EntityTransaction etx = em.getTransaction();

etx.begin();

em.persist(smartProduct);

etx.commit();

em.close();

emf.close();

我得到的异常:应用程序必须提供JDBC连接

有人可以帮我解决问题吗?提前谢谢了!

非常感谢JustinKSU的帮助。我在Spring上下文中添加了注释,然后解决了!这是我的Spring上下文的先前版本:

加入后

有用:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值