hibernate的问题

litanjun 2005-03-31 04:35:06
net.sf.hibernate.QueryException: dereferenced: khr_reside0_.khr_emp_info.emp_id [from com.landray.khr.model.Khr_residence_info khr where khr.khr_emp_info.emp_id=?
这个异常是什么意思。
...全文
88 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
litanjun 2005-04-01
up
回复
litanjun 2005-03-31
在你的property name="resid_type" type="string"/>中的column 都没有,你怎么映射呢,


可以的,不写就是缺省的name了
回复
litanjun 2005-03-31
关系没有错,其他的也是这样写的。
唯一不同的地方是Khr_residence_info的主键是emp_id,khr_emp_info表的主键也是emp_id,两个表是用emp_id做一一对应关联的。
Khr_residence_info.java类里面的属性成员不是emp_id,而是khr_emp_info。
回复
jianghuxing 2005-03-31
<many-to-one
name="PeriodId"
class="TbSysPeriod"
not-null="true"
>
name :就是你要在PO中用的属性,可以自已定义。
class:关连的hbm中的<class name="TbSysPeriod" table="tb_sys_period"> name.
在你的property 中也是这样。
回复
jianghuxing 2005-03-31
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >

<hibernate-mapping package="com.netec.congress.model">
<class name="TbMeeting" table="tb_meeting">
<id
column="meeting_id"
name="Id"
type="integer"
>
<generator class="vm" />
</id>
<property
column="summary"
name="Summary"
not-null="false"
type="string"
/>
<property
column="place"
length="50"
name="Place"
not-null="false"
type="string"
/>
<property
column="telephone"
length="12"
name="Telephone"
not-null="false"
type="string"
/>
<property
column="starttime"
length="19"
name="Starttime"
not-null="false"
type="timestamp"
/>
<property
column="operator"
length="20"
name="Operator"
not-null="false"
type="string"
/>
<property
column="sequence"
length="11"
name="Sequence"
not-null="true"
type="integer"
/>
<property
column="meeting_name"
length="30"
name="MeetingName"
not-null="false"
type="string"
/>
<property
column="undertaker"
length="30"
name="Undertaker"
not-null="false"
type="string"
/>
<property
column="operateTime"
length="19"
name="OperateTime"
not-null="false"
type="timestamp"
/>
<property
column="organizer"
length="20"
name="Organizer"
not-null="false"
type="string"
/>

<many-to-one
name="PeriodId"
class="TbSysPeriod"
not-null="true"
>
<column name="period_id"/>
</many-to-one>
<many-to-one
class="TbSysMeetingtype"
name="Meetingtype"
not-null="true"
>
<column name="meetingtype_id" />
</many-to-one>

</class>
</hibernate-mapping>

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >

<hibernate-mapping package="com.netec.congress.model">
<class name="TbSysPeriod" table="tb_sys_period">
<id
column="period_id"
name="Id"
type="integer"
>
<generator class="vm" />
</id>
<property
column="period_name"
length="20"
name="PeriodName"
not-null="true"
type="string"
/>
<property
column="isdefault"
length="1"
name="Isdefault"
not-null="true"
type="integer"
/>

<set
inverse="true"
lazy="true"
name="TbMeetingSet"
>
<key column="period_id" />
<one-to-many class="TbMeeting" />
</set>
<set
inverse="true"
lazy="true"
name="TbDeputationSet"
>
<key column="period_id" />
<one-to-many class="TbDeputation" />
</set>
</class>
</hibernate-mapping>


在你的property name="resid_type" type="string"/>中的column 都没有,你怎么映射呢,

在写HQL的时候是这样的。
from
TbMeeting tbMeeting where tbMeeting.PeriodId.Id=1

都 是从HBM中一层一层向下走的。
回复
litanjun 2005-03-31
能提示那里有问题嘛
回复
litanjun 2005-03-31
能提升那里有问题嘛
回复
niyboy 2005-03-31
HQL语句问题
回复
litanjun 2005-03-31
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping package="com.landray.khr.model">
<class name="Khr_residence_info" table="khr_residence_info">
<id column="emp_id" name="khr_emp_info" type="string">
<generator class="foreign">
<param name="property">khr_emp_info</param>
</generator>
</id>
<one-to-one name="khr_emp_info" class="Khr_emp_info" cascade="none"/>
<property name="resid_type" type="string"/>
<property name="police_statn" type="string"/>
<property name="resid_addr" type="string"/>
<property name="birth_site" type="string"/>
<property name="escuage_status" type="string"/>
</class>
</hibernate-mapping>




代码
getHibernateTemplate().find("from Khr_residence_info khr where khr.khr_emp_info.emp_id=? ",
new Object[] { emp_id },new Type[] { Hibernate.STRING });
回复
jianghuxing 2005-03-31
你的HQL语句有问题,
你把这它打出来看看。
还有看看它们之时的关系是不是正确。外銉引用是不是正确。
System.out.println(hql);

最好把代码贴出来。
回复
相关推荐
发帖
Java EE
创建于2007-09-28

6.6w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2005-03-31 04:35
社区公告
暂无公告