当前位置:编程学习 > JAVA >>

100分在线等 hibernate 映射小问题。一个女生的请求

我有个项目类:   projrectvo  
有个项目状态类: billstatusvo

//项目类: ProjectVO
         private String billno;//项目编码
private String name;//项目名称
         private String billstatus;//项目状态
private BillStatusVO billstatusvo;

项目状态类: Billstatusvo


         private Integer statusid;//项目状态
private String statusname;//项目状态名称
private String note;//备注

项目类里面的项目状态 引用 项目状态的里面的。

现在就是不知道 每只many-to-one 在project里面怎么配值。
我是在要查询项目信息的时候,把项目状态表的名字现实出来,现在只是主外键关联。  请高手帮我配置下,我自己弄错了。 很郁闷..... 
我叫月月姐,麻烦您了 谢谢。
--------------------编程问答-------------------- 你要这么说,我只能让你先上图了。 --------------------编程问答-------------------- 先帮我了  再上图可以吗?  很急啊  --------------------编程问答--------------------

<many-to-one name="billstatusvo"
class="BillStatusVO类的路径" fetch="select" lazy="false">
<column name="statusid" precision="22" scale="0"
not-null="true" />
</many-to-one>


试试 --------------------编程问答-------------------- 可以给一个完整的吗 --------------------编程问答-------------------- 晕 完整的 手动写起来麻烦啊。。。 --------------------编程问答-------------------- %%%% Error Creating SessionFactory %%%%
org.hibernate.MappingException: Duplicate property mapping of billstatusvo found in com.chceg.vo.ProjectVO
at org.hibernate.mapping.PersistentClass.checkPropertyDuplication(PersistentClass.java:459)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:449)
at org.hibernate.mapping.RootClass.validate(RootClass.java:192)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1102)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1287)
at com.chceg.util.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:31)
at com.chceg.dao.AbstractDAO.getSession(AbstractDAO.java:145)

报了一个错误 --------------------编程问答-------------------- 没人了吗 --------------------编程问答--------------------

大概是这样:

项目类xml:

<hibernate-mapping>
<class name="项目类"
table="项目表名" schema="数据库schema">
<id name="id" type="java.lang.Long">
<column name="id编号字段" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">项目表的序列</param>
</generator>
</id>
<many-to-one name="billstatusvo"
class="BillStatusVO类名" fetch="select" lazy="false">
<column name="statusid对应数据库字段" precision="22" scale="0"
not-null="true" />
</many-to-one>
<property name="billno" type="java.lang.String">
<column name="billno对应数据库字段" length="20" />
</property>
<property name="name" type="java.lang.String">
<column name="name对应数据库字段" length="50" />
</property>
</class>
</hibernate-mapping>

状态类xml:
首先需要在状态类中加一个属性:private Set projrectvos = new HashSet(0);及get/set方法.

<hibernate-mapping>
<class name="项目状态类"
table="项目状态表名" schema="数据库schema">
<id name="id" type="java.lang.Long">
<column name="id编号字段" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">项目状态表的序列</param>
</generator>
</id>
<property name="statusname" type="java.lang.String">
<column name="statusname对应数据库字段" length="50" />
</property>
<property name="note" type="java.lang.String">
<column name="note对应数据库字段" length="50" />
</property>
<set name="projrectvos" inverse="true" cascade="all">
<key>
<column name="statusid对应数据库字段" precision="22" scale="0"
not-null="true" />
</key>
<one-to-many class="项目类名" />
</set>
</class>
</hibernate-mapping>

你看看适当的调整一下。。你的两个类,我都不知道id字段有没有。。也可以将statusid替换为id。。根据你自己的表的情况。。。
--------------------编程问答-------------------- 不是可以自动生成的吗? --------------------编程问答--------------------
引用 9 楼 yyydsl 的回复:
不是可以自动生成的吗?


Myeclipse可以自动生成
Eclipse需要自己写 --------------------编程问答-------------------- 用myeclipse 自动生成一下,复制过去 --------------------编程问答--------------------   <many-to-one name="billstatusvo" cascade="save-update" outer-join="auto"
            class="Billstatusvo包下的类名">
            <column name="projrectvo表引用billstatusvo表的外键字段" />
</many-to-one> --------------------编程问答-------------------- --------------------编程问答-------------------- <many-to-one name="billstatusvo" class="Billstatusvo包下的类名" fetch="select" lazy="false">
            <column name="数据库中的字段名"  />
</many-to-one>

我觉得重要的是 lazy="false" 因为你想掉用Billstatusvo里面的名字而已啊 设置懒加载试下啊 --------------------编程问答-------------------- 用Myeclipse自动生成吧,然后直接复制过去。 --------------------编程问答-------------------- 好吧,我承认我是因为看到是个女生发的,才看的。应该只配many to one就可以。 --------------------编程问答-------------------- 楼上正解 --------------------编程问答-------------------- hibernary可以自动生成实体和配置主外键关联 --------------------编程问答-------------------- 你报的这个错误信息是创建sessionFactory失败,你的这个是自动生成的一个util类吧,检查一下你的hibernate.cfg.xml配置文件对不对。 --------------------编程问答--------------------
引用 18 楼 qdcaijunjun 的回复:
hibernary可以自动生成实体和配置主外键关联


赞同! --------------------编程问答-------------------- 月月 可以结贴了。。。我的答案可以帮到你了(因为你接下来没有再问问题)。。我全手写的啊。。。很辛苦的。。。 --------------------编程问答-------------------- 坐等照片~~~~~~~~ --------------------编程问答--------------------
引用 20 楼 keketian521 的回复:
引用 18 楼 qdcaijunjun 的回复:
hibernary可以自动生成实体和配置主外键关联


赞同!



syso("我也是这样想的");
--------------------编程问答-------------------- 你既然这么强调自己是女的,你要我怎么相信你是女的。 --------------------编程问答-------------------- LZ不上图,就是欺骗广大码农的感情~~~ --------------------编程问答-------------------- 这这这,真想见识传说中的女程序猿 --------------------编程问答-------------------- 好吧 我也承认 我是看到女的  才进来的  = =! --------------------编程问答--------------------
引用 27 楼  的回复:
好吧 我也承认 我是看到女的  才进来的  = =!

... --------------------编程问答--------------------
引用 11 楼  的回复:
用myeclipse 自动生成一下,复制过去


是的。 --------------------编程问答-------------------- Myeclipse可以自动生成
Eclipse需要自己写
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,