-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Deep inheritance of interfaces problem
PostPosted: Fri Oct 14, 2005 3:26 pm 
Newbie

Joined: Mon Jun 27, 2005 4:22 am
Posts: 10
Location: Hyderabad, India
Hi All,

I have the following hierarchy in place.



public interface PartyRole extends Serializable {


public PartyAssociation getPartyAssociation();

public void setPartyAssociation(final PartyAssociation thePartyAssociation);

public PartyRoleType getPartyRoleType();

public void setPartyRoleType(PartyRoleType thePartyRole);
}


public interface PartyApplicantRoleIntf extends PartyRole {


public AccountApplication getAccountApplication();

public void setAccountApplication(final AccountApplication theAccountApplication);

}


public class PossibleOwner implements PartyApplicantRoleIntf {

AccountApplication accountApplication;
PartyAssociation partyAssociation;
ResponsibilityType responsibilityType;
PartyRoleType partyRoleType;


public PossibleOwner() {

}

public PossibleOwner(PartyAssociation thePartyAssociation) {
partyAssociation = thePartyAssociation;
}

public AccountApplication getAccountApplication() {
return accountApplication;
}

public void setAccountApplication(final AccountApplication theAccountApplication) {
this.accountApplication = theAccountApplication;
}

public PartyAssociation getPartyAssociation() {
return partyAssociation;
}

public void setPartyAssociation(final PartyAssociation thePartyAssociation) {
this.partyAssociation = thePartyAssociation;
}

public ResponsibilityType getResponsibilityType() {
return responsibilityType;
}

public void setResponsibilityType(ResponsibilityType responsibilityType) {
this.responsibilityType = responsibilityType;
}


public PartyRoleType getPartyRoleType() {
return partyRoleType;
}


public void setPartyRoleType(PartyRoleType partyRoleType) {
this.partyRoleType = partyRoleType;
}
}


And my hibernate mapping is as follows,

<?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="com.vsoftcorp.coresoft.model">

<typedef name="responsibilityType" class="com.vsoftcorp.utils.hibernate.EnumTypeForResponsibilityType">
<param name="enumClass">com.vsoftcorp.coresoft.model.typesafety.ResponsibilityType</param>
<param name="identifierMethod">getValue</param>
<param name="valueOfMethod">valueOf</param>
</typedef>

<typedef name="roleType" class="com.vsoftcorp.utils.hibernate.EnumTypeForRoleType">
<param name="enumClass">com.vsoftcorp.coresoft.utils.RoleTypeName</param>
<param name="identifierMethod">getValue</param>
<param name="valueOfMethod">valueOf</param>
</typedef>

<class name="com.vsoftcorp.coresoft.model.party.PartyRole" table="PARTY_ROLE">

<id type="int">
<column name="UNIQUE_PARTY_ROLE_ID" sql-type="NUMBER" not-null="true"/>
<generator class="sequence">
<param name="sequence">ACCOUNT_APPLICATION_SEQ</param>
</generator>
</id>

<many-to-one name="partyAssociation"
class="com.vsoftcorp.coresoft.model.party.PartyAssociation"
column="UNIQUE_ASSOCIATION_ID" not-null="true"/>

<component name="partyRoleType" class="com.vsoftcorp.coresoft.model.hibernate.PartyRoleType">
<property name="roleType" type="roleType">
<column name="ROLE_TYPE_ID" sql-type="NVARCHAR" />
</property>
</component>

<joined-subclass name="com.vsoftcorp.coresoft.model.party.PartyApplicantRoleIntf" table="PARTY_APPLICANT_ROLE">
<key column="UNIQUE_PARTY_ROLE_ID"/>
<many-to-one name="accountApplication"
class="com.vsoftcorp.coresoft.model.SimpleAccountApplication"
column="UNIQUE_APPLICATION_ID" not-null="true"/>


<joined-subclass name="com.vsoftcorp.coresoft.model.party.PossibleOwner" table="POSSIBLE_OWNER">
<key column="UNIQUE_PARTY_ROLE_ID" />
<property name="responsibilityType" type="responsibilityType">
<column name="RESPONSIBILITY_TYPE" sql-type="NUMBER" />
</property>
</joined-subclass>

</joined-subclass>

</class>

</hibernate-mapping>


Whats wrong with this mapping? My database structure is as follows,

CREATE TABLE PARTY_ROLE (
UNIQUE_PARTY_ROLE_ID NUMBER(20,0) NOT NULL,
ROLE_TYPE_ID NVARCHAR2(60) NOT NULL,
UNIQUE_ASSOCIATION_ID NUMBER(20,0) NOT NULL,
PRIMARY KEY(UNIQUE_PARTY_ROLE_ID)
)
GO
ALTER TABLE PARTY_ROLE
ADD ( CONSTRAINT PARTY_ROLE_UAID_FK
FOREIGN KEY(UNIQUE_ASSOCIATION_ID)
REFERENCES PARTY_INSTITUTION_ASSOCIATION(UNIQUE_ASSOCIATION_ID) )
GO
ALTER TABLE PARTY_ROLE
ADD ( CONSTRAINT PARTY_ROLE_UPRID_FK
FOREIGN KEY(ROLE_TYPE_ID)
REFERENCES PARTY_ROLE_TYPE(ROLE_TYPE_ID) )
GO


CREATE TABLE PARTY_APPLICANT_ROLE (
UNIQUE_PARTY_ROLE_ID NUMBER(20,0) NOT NULL,
UNIQUE_APPLICATION_ID NUMBER(20,0) NOT NULL,
PRIMARY KEY(UNIQUE_PARTY_ROLE_ID)
)
GO
ALTER TABLE PARTY_APPLICANT_ROLE
ADD ( CONSTRAINT PARTY_APP_ROLE_UPRID_FK
FOREIGN KEY(UNIQUE_PARTY_ROLE_ID)
REFERENCES PARTY_ROLE(UNIQUE_PARTY_ROLE_ID))
GO


CREATE TABLE POSSIBLE_OWNER (
UNIQUE_PARTY_ROLE_ID NUMBER(20,0) NOT NULL,
RESPONSIBILITY_TYPE NUMBER(20,0) NULL,
PRIMARY KEY(UNIQUE_PARTY_ROLE_ID)
)
GO
ALTER TABLE POSSIBLE_OWNER
ADD ( CONSTRAINT POSSIBLE_OWNER_UAID_UPRID_FK
FOREIGN KEY(UNIQUE_PARTY_ROLE_ID)
REFERENCES PARTY_APPLICANT_ROLE(UNIQUE_PARTY_ROLE_ID) )
GO


The UNIQUE_APPLICATION_ID in PARTY_APPLICANT_ROLE is foreign key to another table ACCOUNT_APPLICATION's primary key column.


If i try to get a PossibleOwner for the given ACCOUNT_APPLICATION id the query gives me "Invalid column name" Error.

Let me know what is the problem with deep inheritance of this sort.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.