Liny_@NotePad

沉迷ACG中

Spring+Hibernate查询复合主键报错

原本在C/S项目中的测试通过,但是在转换到B/S的时候就报错了,

复合主键的查询代码是

  1.          /**
  2.          * 获得指定编号的种别
  3.          * @param sortID
  4.          * @param category
  5.          * @return
  6.          */
  7.         public InstrumentSort getSortById(String sortID, InstrumentCategory category) {
  8.                 InstrumentSort sort = new InstrumentSort();
  9.                 sort.setSortId(sortID);
  10.                 sort.setInstrumentCategory(category);
  11.                 return (InstrumentSort) this.getHibernateTemplate().getSessionFactory().getCurrentSession().load(InstrumentSort.class, sort);   
  12.         }

其中sortID和category是InstrumentSort的主键。

报的错误是org.hibernate.LazyInitializationException: could not initialize proxy - no Session

于是在InstrumentSort.hbm.xml的<hibernate-mapping>里加上了 default-lazy="false" 属性 就成功了 囧rz 原因为啥不知