浏览 7863 次
锁定老帖子 主题:一个表的自连接关系如何表达?
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2003-09-20
table test { ID varvhar(5) primary key, ParentID varchar(5) } ParentID和ID是主从关系,这样的表如何使用Hibernate进行map? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2003-09-20
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" > <hibernate-mapping> <!-- Created by Middlegen Hibernate plugin http://boss.bekk.no/boss/middlegen/ http://hibernate.sourceforge.net/ --> <class name="airline.hibernate.Group" table="GROUP"> <id name="id" type="java.lang.String" column="id" > <generator class="uuid.hex" /> </id> <property name="myname" type="java.lang.String" column="GROUP_NAME" length="50" /> <many-to-one name="parentGroup" class="airline.hibernate.Group" column="PARENT_GROUP_ID" cascade="none" not-null="false"/> <set name="childGroups" table="GROUP" cascade="all" inverse="true"> <key column="PARENT_GROUP_ID"/> <one-to-many class="airline.hibernate.Group"/> </set> </class> </hibernate-mapping> |
|
返回顶楼 | |
发表时间:2003-09-22
你使用的表结构是否类似于:
table GROUP { ID NUMBER(5);, PARENT_GROUP_ID NUMBER(5);, GROUP_NAME VARCHAR(32); }; 我试验了一下我自己的表结构,在使用提示我没有合适的类进行初始化. 我的表结构为 table OPERATION { OperID VARCHAR(5);, ParentID VARCHAR(5);, OperName VARCHAR(60);, Description VARCHAR(128); }; xml文件为: <hibernate-mapping> <class name="test.Operation" table="T_Operation" dynamic-update="false" dynamic-insert="false"> <id name="id" column="OperID" type="string"> <generator class="assigned"/> </id> <property name="operName" type="string" update="true" insert="true" column="OperName"/> <property name="description" type="string" update="true" insert="true" column="Description"/> <many-to-one name="operations" class="test.Operation" cascade="none" outer-join="auto" update="true" insert="true" column="ParentID" not-null="false" /> <set name="operations" table="T_Operations" lazy="true" inverse="true" cascade="all" sort="unsorted" > <key column="ParentID"/> <one-to-many class="test.Operation"/> </set> </class> </hibernate-mapping> 请问有什么错吗?谢谢! |
|
返回顶楼 | |
发表时间:2003-09-22
已经搞定了,加黑体字的地方是我在调试中出错的地方:
<hibernate-mapping> <class name="test.Operation" table="T_Operation" dynamic-update="false" dynamic-insert="false"> <id name="id" column="OperID" type="string"> <generator class="assigned" /> </id> <property name="parentId" type="string" [b]update="false" insert="false"[/b] column="ParentID"/> <property name="operName" type="string" update="true" insert="true" column="OperName"/> <property name="description" type="string" update="true" insert="true" column="Description"/> <many-to-one name="parent" class="test.Operation" cascade="none" outer-join="auto" update="true" insert="true" column="ParentID" [b]not-null="true"[/b]/> <set name="operations" table="T_Operations" lazy="true" inverse="true" cascade="all" sort="unsorted"> <key column="ParentID"/> <one-to-many class="test.Operation"/> </set> </class> </hibernate-mapping> 另外,在我的Operation类中,增加了一个以下的代码: /*声明一个父对象的内部属性 */ private Operation parent; /* getter */ public Operation getParent(); { return parent; } /* setter */ public void setParent(Operation parent); { this.parent = parent; } 如上改过后就可以使用了!谢谢bruce!!! |
|
返回顶楼 | |
发表时间:2003-09-22
不好意思,我不知道在标签中不能使用其它的标签,在上面的贴子中,和之间的应当是我说的黑体字的部分!
|
|
返回顶楼 | |