获取错误"将会话转为FlushMode.COMMIT / AUTO或删除' readOnly'来自交易定义的标记"

时间:2016-10-11 14:11:45

标签: spring hibernate spring-orm

我收到错误:

  

在只读模式下不允许写入操作(FlushMode.MANUAL):将会话转换为FlushMode.COMMIT / AUTO或删除' readOnly'来自交易定义的标记。

LoginController.java

Select last_value from wcdl_dictionary.sq_dic_table_definition_table_id

Register.java

@Controller

public class LoginController {

@Autowired

private RegisterDao dao;

@RequestMapping(value = "registerpage", method = RequestMethod.GET)

public ModelAndView getRegisterPage() {

    System.out.println("control is in getRegister method");

    return new ModelAndView("register", "reg", new Register());
}


@RequestMapping(value = "registeruser", method = RequestMethod.POST)
public ModelAndView registerUser(HttpServletRequest request) {

    System.out.println("control is in registeruser method");

    Register register = new Register();

    register.setUname(request.getParameter("uname"));
    register.setPassword(request.getParameter("password"));
    register.setEmail(request.getParameter("email"));
    register.setDob(request.getParameter("dob"));
    register.setAge(request.getParameter("age"));
    register.setCountry(request.getParameter("country"));



    dao.addUser(register);

    return new ModelAndView("success");
}

@RequestMapping(value = "delete", method = RequestMethod.GET)
public ModelAndView delete() {

    return new ModelAndView("delete");
}

@RequestMapping(value = "deleteUser", method = RequestMethod.DELETE)

public void deleteUser(@RequestParam("uname") String uname, ModelMap map) {

    Register register = new Register();
    register.setUname(uname);
    dao.deleteUser(register);

}

@RequestMapping(value = "readUsers", method = RequestMethod.GET)

public List<Register> usersList(ModelMap map) {

    List<Register> register = dao.readUsers();

    map.addAttribute("Users", register);

    return register;
}
}

弹簧servlet.xml中

`package com.spring.dao;

import java.util.List;

import com.spring.model.Register;

public interface RegisterDao {
public void addUser(Register register);

public List<Register> readUsers();

public void deleteUser(Register register);

}

<context:component-scan base-package="com.spring" />

<mvc:annotation-driven />

<tx:annotation-driven />

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

<bean id="handlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/" />
    <property name="suffix" value=".jsp" />
</bean>


<bean id="template" class="org.springframework.orm.hibernate5.HibernateTemplate">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

<bean class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"
    id="sessionFactory">
    <property name="dataSource" ref="dataSource"></property>
    <property name="annotatedClasses">
        <list>
            <value>com.spring.model.Register</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
            <prop key="hibernate.show_sql">true</prop>

        </props>
    </property>
</bean>
<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
    <property name="username" value="scott" />
    <property name="password" value="tiger" />
</bean>

http://maven.apache.org/xsd/maven-4.0.0.xsd">     4.0.0

@Service
public class RegisterDaoImpl implements RegisterDao {

@Autowired

private HibernateTemplate template;

public void addUser(Register register,HttpServletRequest request,HttpServletResponse response) {
    // TODO Auto-generated method stub

    System.out.println("control is in adduser method of daoimpl");


    template.saveOrUpdate(register);

}

public List<Register> readUsers() {
    // TODO Auto-generated method stub

    System.out.println("control is in readuser method of daoimpl");

    List<Register> list = template.loadAll(Register.class);
    return list;
}

public void deleteUser(Register register) {
    // TODO Auto-generated method stub

    System.out.println("control is in deleteuser method of daoimpl");

    template.delete(register);

}

public void addUser(Register register) {
    // TODO Auto-generated method stub

    template.save(register);

}
}

pom.xml 

0 个答案:

没有答案