当前位置: 代码迷 >> J2EE >> hibernate 双主键,该怎么处理
  详细解决方案

hibernate 双主键,该怎么处理

热度:63   发布时间:2016-04-22 02:54:40.0
hibernate 双主键
写代码的过程中遇到这样的问题:
我有一个基础数据表类 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找不到


对于这个问题,请高手指点下。

------解决方案--------------------
探讨
写代码的过程中遇到这样的问题:
我有一个基础数据表类 Parameter.java 这个表是双主键形式,配置文件如下:
Java code

<class name="lxt.entity.Parameter" table="tb_parameter" catalog="transport">
<composite-id name="id" class="lxt.entity……

------解决方案--------------------
问题出在,,需要两个参数,,而你传入的是一个参数。。。。还有一个参数你设置为空了。。主键怎么能设置为空?
  相关解决方案