getCurrentSession().save() 不能保存数据到数据库

禹爸爸 2015-04-08 12:29:24
getCurrentSession().save(item) 不能保存数据到数据库,帮忙看下。
代码如下:
BaseDaoImpl.java:
public class BaseDaoImpl implements BaseDao {
@Autowired
protected SessionFactory sessionFactory;

@Override
public Session getCurrentSession() {
return sessionFactory.getCurrentSession();
}
ItemDAOImpl.java:

public class ItemDAOImpl extends BaseDaoImpl implements ItemDAO {
@Override
@Transactional
public void addItem(Item item) throws DuplicateItemException {
logger.debug("ItemDAOImpl.addItem() - [" + item.getItemNumber() + "]");

try {
Item itemCheck = getItem(item.getItemNumber());
String message = "The item [" + itemCheck.getItemNumber() + "] already exists";
throw new DuplicateItemException(message);
} catch (ItemNotFoundException e) {
getCurrentSession().save(item);
}
}
data.xml:

<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan">
<list>
<value>com.te.dc.*.domain</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<!-- <prop key="hibernate.current_session_context_class">thread</prop> -->
</props>
</property>
</bean>
data.xml

<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
data.xml

<tx:annotation-driven transaction-manager="transactionManager"/>
...全文
262 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
suciver 2015-04-10
  • 打赏
  • 举报
回复
DuplicateItemException这个异常类型是ItemNotFoundException类型是子类吗,如果不是当然不能保存了,你抛出DuplicateItemException异常try catch的是ItemNotFoundException都捕捉不到不会进入catch的代码段了
Coder_D 2015-04-08
  • 打赏
  • 举报
回复
你的事务管理又是交给spring的,代码中捕获异常的时候才进行save操作,同时抛出异常让spring知道,spring把事务回滚了

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧