写代码的过程中遇到这样的问题:
我有一个基础数据表类 Parameter.java 这个表是双主键形式,配置文件如下:
- Java code
<class name="lxt.entity.Parameter" table="tb_parameter" catalog="transport"> <composite-id name="id" class="lxt.entity.ParameterId"> <key-property name="paramType" type="string"> <column name="PARAM_TYPE" length="50" /> </key-property> <key-property name="paramKey" type="string"> <column name="PARAM_KEY" length="50" /> </key-property> </composite-id> . . .
现在有这样的一个问题
我的dao根据id查询方法如下:
- Java code
public Object get(Class<?> clazz, Serializable id) { Object o = getHibernateTemplate().get(clazz, id); if (o == null) { throw new ObjectRetrievalFailureException(clazz, id); } return o; }
写其他的类的时候我知道在service里如下调用:
- Java code
public TruckInfo loadTruckById(String truckId) { return (TruckInfo) this.truckDao.get(TruckInfo.class, truckId); }
现在对于这个双主键该怎么调用呢?
- Java code
this.parameterDao.get(Parameter.class, paramType);//Parameter.class里没有paramType这个属性 //ParameterId.class 这个类没有映射,hibernate找不到
对于这个问题,请高手指点下。
------解决方案--------------------
------解决方案--------------------
问题出在,,需要两个参数,,而你传入的是一个参数。。。。还有一个参数你设置为空了。。主键怎么能设置为空?