HibernateDaoSupport 无法保存数据到数据库,并且不报错
2014-09-18 15:33
323 查看
bean类:
service类的保存方法
manager类(dao层)
然后就发生,提示保存成功,但是数据库没有值得情况。问题是后台没有错误提示
发生这种情况,在dao层(manager)加上这个方法打印提示
import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; /** * 晒单表 * */ @Entity @Table(name="PRZ_SHOW") public class OrderShow implements Serializable { private Long showId; //晒单id private Long userId; //用户id private Long goodsId; //商品id private String showDesc; //晒单感想 private Long orderId; //订单id private int verifyFlag; //审核标记 private String verifyTime; //审核时间 private String createTime; //晒单时间 @Id
@GeneratedValue @Column(name = "SHOW_ID", unique = true, nullable = false) public Long getShowId() { return showId; } public void setShowId(Long showId) { this.showId = showId; } @Column(name="USER_ID") public Long getUserId() { return userId; } public void setUserId(Long userId) { this.userId = userId; } @Column(name="GOODS_ID") public Long getGoodsId() { return goodsId; } public void setGoodsId(Long goodsId) { this.goodsId = goodsId; } @Column(name="GOODS_TYPE") public int getGoodsType() { return goodsType; } public void setGoodsType(int goodsType) { this.goodsType = goodsType; } @Column(name="SHOW_DESC") public String getShowDesc() { return showDesc; } public void setShowDesc(String showDesc) { this.showDesc = showDesc; } @Column(name="FAVORATE_COUNT") public Long getFavorateCount() { return favorateCount; } public void setFavorateCount(Long favorateCount) { this.favorateCount = favorateCount; } @Column(name="COMMENT_COUNT") public Long getCommentCount() { return commentCount; } public void setCommentCount(Long commentCount) { this.commentCount = commentCount; } @Column(name="ORDER_ID") public Long getOrderId() { return orderId; } public void setOrderId(Long orderId) { this.orderId = orderId; } @Column(name="VERIFY_FLAG") public int getVerifyFlag() { return verifyFlag; } public void setVerifyFlag(int verifyFlag) { this.verifyFlag = verifyFlag; } @Column(name="VERIFY_TIME") public String getVerifyTime() { return verifyTime; } public void setVerifyTime(String verifyTime) { this.verifyTime = verifyTime; } @Column(name="CREATE_TIME") public String getCreateTime() { return createTime; } public void setCreateTime(String createTime) { this.createTime = createTime; } }
service类的保存方法
OrderShow show = new OrderShow(); show.setShowId(this.orderShowManager.getSequence() ); show.setUserId(userId); show.setGoodsId(goodsId); show.setGoodsType(goodsType); show.setOrderId(orderId); show.setShowDesc(comment); show.setCommentCount(0L); show.setFavorateCount(0L); show.setCreateTime( DateUtil.dateToString14(new Date())); try { this.orderShowManager.saveOrUpdate(show); } catch (Exception e) { e.printStackTrace(); return null; }
manager类(dao层)
<pre name="code" class="java"> import java.sql.SQLException; import org.hibernate.HibernateException; import org.hibernate.Session; import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.stereotype.Repository; @Repository() public class OrderShowManager <OrderShow> extends HibernateDaoSupport { private JdbcTemplate jdbcTemplate; public JdbcTemplate getJdbcTemplate() { return jdbcTemplate; } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; }
/**
*获得oracle表自增长主键
*/ public Long getSequence() { return (Long)queryForObject("select SQ_PRZ_SHOW.nextval from dual", Long.class); } private Object queryForObject(String sql, Class requiredType) { try { return jdbcTemplate.queryForObject(sql, requiredType); } catch (EmptyResultDataAccessException e) { return null; } } }
然后就发生,提示保存成功,但是数据库没有值得情况。问题是后台没有错误提示
发生这种情况,在dao层(manager)加上这个方法打印提示
public void save(final OrderShow show) { this.getHibernateTemplate().execute( new HibernateCallback() { @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { session.save(show); return null; } }); }
若是捕捉错误为:could not get next sequence value,解决方法就是
把bean类的 @GeneratedValue 去掉,程序就会正常运行。
错误情况为:
could not get next sequence value、无法保存bean类到数据库
相关文章推荐
- hibernate dao保存方法无法持久化到数据库的问题
- hibernate中的session.save无法保存数据
- 使用MyEclipse中用Hibernate反向工程生成的DAO会发生对象无法存储到数据库的现象,原因是没有运用事务。
- 关于Nhibernate在wpf中的使用:Session.Save()无法保存数据到数据库中
- 将数据库内表中的数据导出到txt文档中,并且显示一个对话框,提示用户保存文件的位置
- hibernate4无法保存数据
- hibernate4无法保存数据
- getHibernateTemplate.load()一直无法找到数据库中存在的数据
- hibernate 保存大字段数据到数据库(sqlserver)
- struts+spring+hibernate无法插入数据库数据的问题
- hibernate 实行原生sql insert数据无法插入到数据库
- Hibernate3不使用事务无法保存或修改数据问题
- Hibernate Dao无法删除数据的可能原因
- MyEclipse生成的Spring+Hibernate无法保存数据问题的解决方法
- 数据库访问层中使用GenericDao和HibernateDaoSupport
- Hibernate+Mysql在向数据库中保存 / 更新数据时设置编码格式
- 解决:hibernate查询过多时与数据库连接断开或无法再查询到数据问题。
- hibernate dao保存实体,提示成功,但未保存入数据库,解决方法
- 织梦5.6升级到5.7,发文章时无法“把数据保存到数据库主表 `dede_archives` ...
- 从数据库导出数据到excel并且保存到指定位置