DAO类是myeclipse自动生成的,试了很久,我在同一个方法里使用不的DAO类调用save()方法,一个插入数据成功,一个不成功,没的任何报错。代码:registerAction里的注册方法:employeeDAO.save(employee)成功插入数据,roomDAO.save(room);没有插入数据,但没有报错。 public String employeeRegister() throws Exception {
System.out.println("注册账号为:"+this.account);
employees = employeeDAO.findByEaccount(account);
if(employees.isEmpty())
{
System.out.println("注册信息为:"+this.account+","+this.password+","+this.name);
Employee employee = new Employee();
employee.setEaccount(this.account);
employee.setEpassword(password);
employee.setEname(name);
employeeDAO.save(employee);
Room room = new Room();
room.setRid("00-00005");
room.setRoomType("单人标准间");
room.setRoomPrice(100.0000);
System.out.println("添加的房间信息:"+room.getRid()+","+room.getRoomType()+","+room.getRoomPrice());
roomDAO.save(room);
Sprins配置:<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- Hibernate设置 -->
<!-- 会话工厂设置,读取Hibernate数据库配置信息 -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
</bean>
<!-- Spring 设置 -->
<!-- 会话模板 -->
<bean id="hibernateTemlate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean><!-- 事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean><!-- 配置持久化类DAO bean -->
<bean id="employeeDAO" class="employeeTable.dao.EmployeeDAOImp">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean id="roomDAO" class="roomTable.dao.RoomDAOImp">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean><!-- struts2配置Action -->
<bean name="registerAction" class="actions.RegisterAction" scope="prototype">
<property name="managerDAO">
<ref local="managerDAO"/>
</property>
<property name="employeeDAO">
<ref local="employeeDAO"/>
</property>
<property name="roomDAO">
<ref local="roomDAO"/>
</property>
</bean><!-- 配置事务拦截器 -->
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="save">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>/roomDAO</value>
<value>/employeeDAO</value>
</list>
</property>
<property name="interceptorNames">
<list><value>transactionInterceptor</value></list>
</property>
</bean>
</beans>
System.out.println("注册账号为:"+this.account);
employees = employeeDAO.findByEaccount(account);
if(employees.isEmpty())
{
System.out.println("注册信息为:"+this.account+","+this.password+","+this.name);
Employee employee = new Employee();
employee.setEaccount(this.account);
employee.setEpassword(password);
employee.setEname(name);
employeeDAO.save(employee);
Room room = new Room();
room.setRid("00-00005");
room.setRoomType("单人标准间");
room.setRoomPrice(100.0000);
System.out.println("添加的房间信息:"+room.getRid()+","+room.getRoomType()+","+room.getRoomPrice());
roomDAO.save(room);
Sprins配置:<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- Hibernate设置 -->
<!-- 会话工厂设置,读取Hibernate数据库配置信息 -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
</bean>
<!-- Spring 设置 -->
<!-- 会话模板 -->
<bean id="hibernateTemlate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean><!-- 事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean><!-- 配置持久化类DAO bean -->
<bean id="employeeDAO" class="employeeTable.dao.EmployeeDAOImp">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean id="roomDAO" class="roomTable.dao.RoomDAOImp">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean><!-- struts2配置Action -->
<bean name="registerAction" class="actions.RegisterAction" scope="prototype">
<property name="managerDAO">
<ref local="managerDAO"/>
</property>
<property name="employeeDAO">
<ref local="employeeDAO"/>
</property>
<property name="roomDAO">
<ref local="roomDAO"/>
</property>
</bean><!-- 配置事务拦截器 -->
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="save">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>/roomDAO</value>
<value>/employeeDAO</value>
</list>
</property>
<property name="interceptorNames">
<list><value>transactionInterceptor</value></list>
</property>
</bean>
</beans>
解决方案 »
- 各位XDJM,那位做过“图形化作业运行监控”
- Struts2 select标签如何获取action中传来的值进行option选择?
- 反射可以得到什么,清明细
- 高手解答!有关hibernate auto commit mode 的问题
- hibernate多表查询问题
- STRUTS中如何解决乱码问题
- java调用weblogic上发布的webservice,怎样得到webservice返回的VO(value object)或VO的集合?
- 大虾:问一个关于基于UDP协议的数据包的发送问题,谢谢!
- j2ee究竞是怎么运作的,才能用ejb等现在b/s那种开发成果
- spring cloud 启动报错
- java与PLC串口通信
- 求助!!struts2 配置问题
<id name="id" type="java.lang.String">
<column name="id" length="20" />
<generator class="assigned" />
</id>
当class="assigned"时使用getHibernateTemplate().save()是不能插入数据到数据库的
我的问题之所以一个能插入一个不能插入就是那个不能插入的表主键是这样,两个方法解决:
1.改成class="native"不过改后对数据库主键的设置有没有影响就不清楚了.
2.在DAO类里getHibernateTemplate().save(transientInstance)这个地方改成 HibernateTemplate template=super.getHibernateTemplate();
template.setFlushMode(template.FLUSH_EAGER);
template.save(transientInstance);这些都是大神们的经验,感谢大神们啊!
session.save(transientInstance);
session.beginTransaction().commit();
<property name="show_sql">true</property>
看插入的SQL语句能够打出来么