Hibernate映射视图的问题(复合主键)

liul17 2008-06-03 11:07:33
我新建了个了个视图,用这个视图生成了两个.java(一个xxxx.java,一个xxxxId.java)和一个xxxx.hbm.xml,这个xxx.hbm.xml中的内容如下:
<hibernate-mapping>
<class name="mappings.Viewciandpi" table="viewciandpi" catalog="myenglish">
<composite-id name="id" class="mappings.ViewciandpiId">
<key-property name="id" type="integer">
<column name="id" />
</key-property>
<key-property name="playDate" type="date">
<column name="PlayDate" length="10" />
</key-property>
<key-property name="name" type="string">
<column name="name" length="50"/>
</key-property>
<key-property name="title" type="string">
<column name="title" length="50" />
</key-property>
<key-property name="content" type="string">
<column name="Content" length="65535" />
</key-property>
</composite-id>
</class>
</hibernate-mapping>
现在的问题是:
1.我用hql查询出来的数据有一部分为null,经过我分析是因为这个复合主键的原因,其中content字段为空,由于这个,导致读取出来的对象是null
2.之后,我将<key-property name="content" type="string">删除掉,就没有空的问题了,但是getContent()确永远取不出东西来了,总是null

我从网上查询了下,得知视图肯定是要用复合主键,但怎么设置才能实现我的需求呢?
我试过在<composite-id ></composite-id>外层添加
<property name="content" type="string">
<column name="Content" length="65535" />
</property>
但会提示:
%%%% Error Creating SessionFactory %%%%
org.hibernate.PropertyNotFoundException: Could not find a getter for content in class mappings.Viewciandpi

请大家帮我看看是怎么回事!怎么设置才能解决我的问题? 请详细说下,谢谢
...全文
823 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
nuren 2011-01-06
  • 打赏
  • 举报
回复
4楼的解决方法是对的,大家可以参考下,谢谢四楼了
liuchen168 2010-10-18
  • 打赏
  • 举报
回复
楼上的哥们怎么解决的,分享一下,感激不尽
j2ee_ww 2008-09-18
  • 打赏
  • 举报
回复
有个上面的指点 真让我豁然开朗啊 !! 谢谢大家!!
liul17 2008-06-03
  • 打赏
  • 举报
回复
to M_song:
那mappings.ViewciandpiId这个类里的东西怎么处理,原来mappings.Viewciandpi中的id的get set方法是这样的
public ViewciandpiId getId() {
return this.id;
}

public void setId(ViewciandpiId id) {
this.id = id;
}
M_song 2008-06-03
  • 打赏
  • 举报
回复
不要把所有的字段当作联合主键,只要挑出能够标识记录唯一性的几个字段作为KEY-PROPERTY
其他的都当做PROPERTY就可以了

<composite-id > </composite-id>外层添加
<property name="content" type="string">
<column name="Content" length="65535" />
</property>


org.hibernate.PropertyNotFoundException: Could not find a getter for content in class mappings.Viewciandpi

写上get set方法撒!
欲念无罪 2008-06-03
  • 打赏
  • 举报
回复
帮不上 闪了~~~
liul17 2008-06-03
  • 打赏
  • 举报
回复
能不能说的详细点,谢谢,最好能有个例子,我刚开始使用hibernate谢谢
M_song 2008-06-03
  • 打赏
  • 举报
回复
可以试下使用主键类的复合主键方式!
M_song 2008-06-03
  • 打赏
  • 举报
回复
视图本来就要当做表,有映射文件,有类
要不让你加上get,set方法!
liul17 2008-06-03
  • 打赏
  • 举报
回复
OK解决了,把视图完全当作表就行了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧