`
MauerSu
  • 浏览: 514737 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使用JPA的EntityManager.persist()方法无法保存到数据库的问题

    博客分类:
  • JPA
 
阅读更多

源:http://blog.csdn.net/licko/article/details/6301301

http://hi.baidu.com/daihome/item/5e8d0d0ee62b733bf3eafcc1

评:忙活半天,注解事务跟xml里事务乱了,哎

昨天用JPA时遇到一个小问题,entitymanager是通过@PersistContext方法注入的,使用entitymanager查询 对象没有问题,但进行持久化时就无法保存数据到数据库,程序也没有抛出任何异常。瞎捣鼓了一天,总以为是persistence.xml文件哪里出问题, 最后上网查资料,看到别人提到transaction-type中的JTA和RESOURCE_LOCAL的区别,才想到自己在调用persis()方法 之前没有添加@Transactional标签。 现在问题解决了,衷心的感谢百度谷歌以及在网上分享自己解决问题经验的大牛和小牛们!

 

转载:JTA和RESOURCE_LOCAL的区别就在于一个是声明性事务管理,由容器来打理你添加了 @TransactionAttribut(xxxx)注释的EJB method过程,而另一个需要手动从EM中得到一个事务句柄并使用begin(),commit()之类编程性事务管理方式

 

 

Spring中JPA 不能 插入、更新、删除数据(可以查找)

1.使用 @Transactional 注释

@Transactional   //事务注解
public String saves(employee emp) {
  
   try{
    em.persist(emp);  

    return "employee.dao保存成功";
   }
   catch(Exception e){
    return "employee.dao保存出错";
   }
  
}

2.要在 Spring 中使用 @Transactional 注释,必须在 Spring 配置文件中添加以下代码行:

 

<tx:annotation-driven transaction-manager="transactionManager"/>

分享到:
评论

相关推荐

    JPA连接数据库增删改查

    1. **增加(Create)**: 创建一个新的实体实例,然后调用`EntityManager.persist()`方法将其保存到数据库。 ```java EntityManagerFactory emf = Persistence.createEntityManagerFactory("myPersistenceUnit"); ...

    jpasql.rar

    **Entity Manager(实体管理器)** 是JPA的核心组件,它维护了实体对象的状态,并负责将这些对象保存到数据库或从数据库加载它们。`EntityManager`提供了方法如`persist()`, `merge()`, `remove()`, `find()`等来...

    JPA (一)

    - **持久化(Persist)**:使用 `entityManager.persist(entity)` 方法将新实体保存到数据库。 - **查找(Find)**:通过 `entityManager.find(Entity.class, id)` 可以根据实体类和主键找到对应的实体。 - **更新...

    jpa对表的crud操作

    例如,创建一个新的`Person`对象并将其保存到数据库: ```java public void save() { Person person = new Person("aaa", 121); entityManager.persist(person); } ``` 这段代码首先创建了一个新的`Person`实例...

    jpa.rar_Java JPA

    1. 插入(Persist):使用`entityManager.persist(entity)`将新对象保存到数据库。 2. 更新(Merge):如果实体已经存在数据库中,`entityManager.merge(entity)`会更新其状态。 3. 删除(Remove):`...

    springbootjpa.zip

    - Create:JPA通过`EntityManager.persist()`方法将新建的对象保存到数据库中。 - Read:`EntityManager.find()`或JPQL(Java Persistence Query Language)查询语言用于获取数据库中的数据。 - Update:更新操作...

    07_JPA详解_使用JPA加载_更新_删除对象.zip

    当实体处于持久化状态时,任何改变都会自动同步到数据库。通过`entityManager.persist()`方法可将瞬态对象变为持久态。已持久化的对象,其属性更改后调用`entityManager.flush()`会触发更新。 #### 3.2 merge()方法...

    entitymanager(hibernate)

    - **创建(Create)**:使用`entityManager.persist(entity)`将新实体保存到数据库。 - **读取(Read)**:通过`entityManager.find(Class&lt;T&gt; entityClass, ID id)`方法查找特定ID的实体。 - **更新(Update)**...

    JPA图书管理(连接数据库)

    - **保存(Persist)**: 使用`entityManager.persist(entity)`将新实体保存到数据库。 - **加载(Find)**: 通过`entityManager.find(Entity.class, id)`获取指定ID的实体。 - **更新(Merge)**: `entityManager....

    JPA+Netbeans6直接操作数据库

    在这里,我们需要指定持久化单元(Persistence Unit)的名称,使用的JPA提供商,以及连接到数据库的相关属性。 3. **使用EntityManager**:JPA的核心接口,通过EntityManager我们可以执行CRUD(Create, Read, ...

    JPA CRDU Programming Patterns

    在JPA中创建实体非常直观,可以通过构造器或setter方法设置实体属性,然后通过`EntityManager`的`persist()`方法将实体持久化到数据库中。例如,对于一个名为`User`的简单实体: ```java User user = new User(); ...

    基于JPA的CRUD例子

    创建操作(Create):使用`EntityManager`的`persist()`方法将新实体保存到数据库。 ```java EntityManager entityManager = entityManagerFactory.createEntityManager(); EntityTransaction tx = entityManager....

    springboot整合mybatis整合jpa使用entityManger

    例如,你可以使用`entityManager.persist()`来保存新实体,`entityManager.find()`来查找实体,`entityManager.merge()`来更新实体,以及`entityManager.remove()`来删除实体。EntityManager还提供了事务管理和查询...

    jpa--15.jpa基本api

    2. **保存实体(Persist)**: 使用`EntityManager.persist(entity)`方法将新实体保存到数据库,如果实体已经存在,此操作会更新对应的数据库记录。 3. **查找实体(Find)**: `EntityManager.find(Class entity...

    jpa实现数据库操作

    - `entityManager.persist(entity)`:将对象持久化到数据库。 - `entityManager.find(Entity.class, id)`:根据ID查找对象。 - `entity.setProperty(value)` 和 `entityManager.merge(entity)`:更新对象。 - `...

    JPA (Java Persistence API)

    4. **更新(Merge)**: `EntityManager.merge()`方法将一个脱离管理的实体合并到当前的实体管理器上下文中,然后持久化到数据库。 5. **删除(Remove)**: `EntityManager.remove()`方法用来删除一个持久化实体,它...

    JPA(Java Persistence API) JPA中文教程

    - 插入(Persist):调用`entityManager.persist(entity)`将新实体保存到数据库。 - 更新(Merge):`entityManager.merge(entity)`用于更新现有实体。 - 删除(Remove):`entityManager.remove(entity)`从...

    JPA.rar_JAVAEE系统_JavaEE_Javaee jpa_订单管理

    1. **实体类与表映射**:在`Order`类中,我们可以使用`@Entity`注解标识这是一个JPA实体,`@Table(name = "orders")`注解指定它映射到数据库中的`orders`表。此外,类的属性可能使用`@Id`、`@GeneratedValue`等注解...

    hibernate_ jpa.jar

    1. **保存(Save)**:使用EntityManager的persist()方法保存新实体,或merge()方法更新已存在的实体。 2. **删除(Delete)**:调用remove()方法删除实体,实体必须是管理状态的。 3. **加载(Load)**:find()...

    关于SH JPA 简单的CRUD操作

    使用Hibernate JPA,开发者可以利用其强大的ORM(Object-Relational Mapping)能力,将Java对象直接映射到数据库表。 6. **Restful API** Restful API是一种Web服务设计模式,通过HTTP方法(GET, POST, PUT, ...

Global site tag (gtag.js) - Google Analytics