--- [EMAIL PROTECTED] wrote:
>
> Ummmm.....
>
>
> You should use <one-to-many> or <many-to-many>
>
> <many-to-one> makes no sense at all.....
I INDEED need a <many-to-one> under <bag>!
My Top-level (not nested) <bag> table has a key column
and element column (integer). However the element
column is a foreign key (many-to-one) to another table
(B in the example below).
E.g:
BAG TABLE TABLE B
key integer id name .....
1 1 1 "name1" ....
1 2 2 "name2" ....
1 3 3 "name3" ....
2 3
2 2
Here I wants the bag element(Java object) is type of
B, not just the integer. Following current DTD, I have
to encapsulate the <composite-element> which has a
single <many-to-one> under the <bag>. The question
is why I can not use <many-to-one> directly under
<bag>?
"On a second thought <many-to-one>/<one-to-one>
should be allowed anywhere <property>/<element>
is allowed. For <property>/<element>, One columnis
used to produce an instance of primitive type.
For<many-to-one>/<one-to-one> one column (and another
table) is used to produce a user-defined type." Is
this statement is correct?
This is a abstract example. My previous example(below)
is a concrete example I encoutered in my application.
Thanks
jason
>
>
>
>
>
> jiesheng zhang
>
>
> <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]
>
> Sent by:
> cc:
>
>
> [EMAIL PROTECTED] Subject:
> [Hibernate] should <many-to-one> be added to
> <bag><list>...?
> eforge.net
>
>
>
>
>
>
>
>
> 03/02/03 06:11 PM
>
>
>
>
>
>
>
>
>
>
>
>
> I have one usage scenario as below:
>
> The classes could be like this.
> public class Person {
> ...
> List Addresses; //A list of Address
> objects.
> }
> public class Address {
> ...
> List types; //A list of AddressType
> object
> }
> public class AddressType {
> long typenum;
> String typename;
> }
>
>
> The database schema could be like this.
> creat table addressType (
> typenum varchar(20) primary key,
> typename varchar(40) not null
> );
> /*
> * Table models a collection of address type.
> */
> create table addressTypes (
> collectionID integer,
> type integer,
> constraint FK_ADDRESSTYPE_TO_STRING
> foreign key
> (type) references addresstype (typenum)
> );
> create sequence seq_ats;
> create table person (
> id integer primary key,
> ...
> );
> create table address (
> personid integer not null,
> ...
> types integer, /* The type references the
> collectionID in the AddressTypes above */
>
> constraint FK_ADDRESS_TO_PERSON foreign
> key
> (companyid) references person (id)
> );
>
>
> The mapping file is like this
> <hibernate-mapping>
> <bag role="addressTypes" table="addressTypes">
> <generated-key type="long" column="collectionID">
> <generator class="sequence">
> <param>seq_ats</param>
> </generator>
> </generated-key>
> <composite-element class="AddressTypeWrapper">
> <many-to-one name="type" column="type"
> class="AddressType"/>
> </composite-element>
> <!-- here I use one component class
> AddressTypeWrapper towrap the
> AddressType object. The AddressTypeWrapperhas only
> one property: the
> AddressType object. Sohere the
> AddressTypeWrapper is really an
> artifactclass required for hibernate mapping only,
> not fromobject model.
> What I really wants is that the collection element
> istype of AddressType,
> not AddressTyepWrapper. Themapping could be like
> this: <many-to-one name
>
="type"column="type"class="AddressType"/>---<many-to-one>directly
> under
> <bag>.However this is not allowed by the DTD since
> bag doesnot have
> <many-to-one> element. Is there any other
> consideration why
> <many-to-one> isnot allowed here? or Can I just
> modify the DTD and usethe
> <many-to-one> directly under <bag>.On a second
> though
> <many-to-one>/<one-to-one> shouldbe allowed anywhere
> <property>/<element>
> is allowed.For <property>/<element>, One column
> produce aninstance of
> primitive type. For<many-to-one>/<one-to-one> one
> column (and a table) is
> used to produce a user-defined type. -->
> </bag>
>
> <!-- map for AddressType -->
> <class name="AddressType" table="AddressType">
> <id name="typenum" type="long">
> ...
> </id>
> <property name="typename" column="typename"/>
> </class>
>
>
> <!-- map for Person -->
> <class name="Person" table="person">
> ...
> <!--person has a list of Address -->
> <bag name="addresses table="address">
> <key column="personid"/>
> <composite-element>
> ...
> <!-- references to the top-level
> collection -->
> <collection name="types" column="types"
> role="addressTypes"/>
> </composite-element>
> </bag>
> </class>
> </hibernate-mapping>
>
> Thanks
>
> jason
>
>
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Mail Plus - Powerful. Affordable. Sign up
> now.
> http://mailplus.yahoo.com
>
>
>
-------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld =
> Something 2 See!
> http://www.vasoftware.com
> _______________________________________________
> hibernate-devel mailing list
> [EMAIL PROTECTED]
>
https://lists.sourceforge.net/lists/listinfo/hibernate-devel
>
>
>
>
>
**********************************************************************
> Any personal or sensitive information contained in
> this email and
> attachments must be handled in accordance with the
> Victorian Information
> Privacy Act 2000, the Health Records Act 2001 or the
> Privacy Act 1988
> (Commonwealth), as applicable.
>
=== message truncated ===
__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
hibernate-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/hibernate-devel