Hibernate mapping problem of parent

S

sss.zhou

The mapping attribute parent="xxx" doesn't work

Hibernate Version: version 3.2.5

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

<hibernate-mapping package="parenttest">
<class name="Parent" table="PARENT">
<id name="id" column="PARENT_ID" type="long">
<generator class="native"/>
</id>
<property name="name" column="NAME" type="string"/>

<set name="Childs" table="CHILDS">
<key column="CHILD_ID"/>
<composite-element class="Child">
<parent name="Parent"/>
<property name="username" column="ADDED_BY_USER"
type="string"/>
</composite-element>
</set>
</class>
</hibernate-mapping>


But I get the Child.java class source file by hbm2java.

package parenttest;
// Generated 2007-9-9 17:42:40 by Hibernate Tools 3.2.0.b9

/**
* Child generated by hbm2java
*/
public class Child implements java.io.Serializable {

private String username;

public Child() {
}

public Child(String username) {
this.username = username;
}

public String getUsername() {
return this.username;
}

public void setUsername(String username) {
this.username = username;
}
}


The code of Parent.java is OK.

So what's wrong with the mapping files? I want the Child to have the
getter and setter of parent. I see the parent tag do this work in
hibernate document.


private Parent parent;
public Parent getParent() {
return parent;
}

public void setParent(Parent parent) {
this.parent = parent;
}
 
D

David Portabella

The mapping attributeparent="xxx" doesn't work

Hibernate Version: version 3.2.5

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

<hibernate-mapping package="parenttest">
<class name="Parent" table="PARENT">
<id name="id" column="PARENT_ID" type="long">
<generator class="native"/>
</id>
<property name="name" column="NAME" type="string"/>

<set name="Childs" table="CHILDS">
<key column="CHILD_ID"/>
<composite-element class="Child">
<parent name="Parent"/>
<property name="username" column="ADDED_BY_USER"
type="string"/>
</composite-element>
</set>
</class>
</hibernate-mapping>

But I get the Child.java class source file by hbm2java.

packageparenttest;
// Generated 2007-9-9 17:42:40 by Hibernate Tools 3.2.0.b9

/**
* Child generated by hbm2java
*/
public class Child implements java.io.Serializable {

private String username;

public Child() {
}

public Child(String username) {
this.username = username;
}

public String getUsername() {
return this.username;
}

public void setUsername(String username) {
this.username = username;
}

}

The code ofParent.java is OK.

So what's wrong with the mapping files? I want the Child to have the
getter and setter ofparent. I see theparenttag do this work in
hibernate document.

privateParentparent;
publicParentgetParent() {
returnparent;
}

public void setParent(Parentparent) {
this.parent=parent;
}


I don't understand your line:
<parent name="Parent"/>

Is "parent" a valid element in the hibernate config?
To get the effect you asked, you could substitute the previous line
by:

<many-to-one name="parent" class="parenttest.Parent"
column="PARENT_ID"/>

HTH,
DAvid
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,152
Members
46,697
Latest member
AugustNabo

Latest Threads

Top