2013-07-29 2 views
0

Я хочу обновить адрес.Данные о пружинах jpa query string error

@Modifying 
@Query("update UserInfo u set u.address = ?1 where u.username = ?2") 
void setAddress(String address, String username); 

Но это не сработает.

org.springframework.web.util.NestedServletException: Request processing failed; 
nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: 
|Exception Description: No transaction is currently active; nested exception is 
javax.persistence.TransactionRequiredException: |Exception Description: No transaction 
is currently active 

И это говорит моя строка запроса является неизвестный источник

Какие причины занимают это исключение?

Как обновить несколько полей в обновленном запросе?

@Query("update UserInfo u set u.address = ?1, u.phoneNumber = ?2 where u.username = ?3") 

ответ

0

сделка не активна в данный момент, так что просто добавить аннотацию сказать весной, это сделка

@Modifying 
@Transactional 
@Query("update UserInfo u set u.address = ?1 where u.username = ?2") 
void setAddress(String address, String username); 
0

Сначала вы должны создать контекст, как вид ниже, вы можете изменить БД и ORM vendor.Now у вас есть менеджер транзакций. Затем используйте метод @Transactional для вашего метода.

<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="jpaVendorAdapter"> 
     <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
      <property name="generateDdl" value="true" /> 
      <property name="database" value="HSQL" /> 
     </bean> 
    </property> 
    <property name="persistenceUnitName" value="jpa.sample" /> 
</bean> 

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 

<jdbc:embedded-database id="dataSource" type="HSQL" /> 

 Смежные вопросы

  • Нет связанных вопросов^_^