_charles_ wrote:
Hi,
Could you give the mapping files and the java code please?
here are the relevant mappings and Java codes
Code:
public class WSFolder extends Folder {
public WSFolder(final Object id) {
this(id, _wsfolderCD);
}
public WSFolder(final Object id, final ClassifierDescriptor cd) {
super(id, cd);
}
// APIs to be used by DAO layer to instantiate this data object.
public WSFolder(final long id) {
this(new Identity(_wsfolderCD.getQualifiedName(), id), _wsfolderCD);
}
public List getWSProjects() {
return getNestedObjects();
}
public void setWSProjects(List projects) {
setNestedObjects(projects);
}
// APIs to be used by DAO layer only
public void addWSProject(WSProjectNestedObject project) {
addNestedObject(project);
}
private static ClassDescriptor _wsfolderCD;
static {
WSFoldersBusinessObject.toMetadataManager();
_wsfolderCD = mmgr.findClass("agile.wsfolder.Folder");
}
}
The base class Folder.java is as follows
Code:
public class Folder extends NestedDataObject {
protected String name, description, owner;
protected Date lastmodified;
protected List nested;
protected List children;
public Folder(final Object id) {
this(id, _folderCD);
}
public Folder(final Object id, final ClassifierDescriptor cd) {
super(id, cd);
}
// APIs to be used by DAO layer to instantiate this data object.
public Folder(final long id) {
this(new Identity(_folderCD.getQualifiedName(), id), _folderCD);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String desc) {
this.description = desc;
}
public String getOwnerName() {
return owner;
}
public void setOwnerName(String owner) {
this.owner = owner;
}
public Date getLastModified() {
return lastmodified;
}
public void setLastModified(Date lastmodified) {
this.lastmodified = lastmodified;
}
public List getNestedObjects() {
return nested;
}
public void setNestedObjects(List nested) {
this.nested = nested;
}
// APIs to be used by DAO layer only
public void addNestedObject(NestedDataObject ndo) {
if(nested == null) nested = new ArrayList(10);
nested.add(ndo);
}
public List getNestedFolders() {
return children;
}
public void setNestedFolders(List children) {
this.children = children;
}
// APIs to be used by DAO layer only
public void addNestedFolder(Folder child) {
if(children == null) children = new ArrayList(10);
children.add(child);
}
private static ClassDescriptor _folderCD;
static {
MetadataManager mmgr = WSFoldersBusinessObject.toMetadataManage();
_folderCD = mmgr.findClass("agile.wsproduct.Folder");
}
}
The mapping is
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping package="com.agile.ws.folder">
<class name="WSFolder" table="AGILEFOLDER" proxy="WSFolder" >
<id name="m_id">
<generator class="native"/>
</id>
<property name="name" column="name" type="string"/>
<property name="description" column="description" type="string"/>
<property name="owner" column="owner" type="long"/>
<property name="lastmodified" column="modified_on" type="date"/>
</class>
</hibernate-mapping>
The field m_id is a
protected member variable in the Abstract class AbstractDataObject which is extended by NestedDataObject. And NestedDataObject is extended by the Base folder class i.e. Folder (which is finally extended by WSFolder)
hope this helps..
thanks Santosh