|
From: Doug C. <de...@fl...> - 2002-02-07 07:40:04
|
I completed the refactoring, breaking the one MappingByReflection
class into eight classes. I put them all in the tools.reflect package.
Maintenance should be easier that way.
The reliance on Persistent has been eliminated as suggested. Abstract
classes are allowed in the superclass chain. Tomorrow I plan to add in
the properties from transient superclasses, finish array handling,
eliminate duplicate table and column names, and clean up.
Are there any situations (short of naming heuristics or config files)
where you would expect the relection code to generate:
many-to-one
one-to-many
many-to-many
composite-element?
I just want to make sure I understand the dtd.
Your daily dose of XML is below.
e
usage: class.name | uid=<newUID> | done
? uid=code
niceKey(code): code uid UID id ID key KEY pk
? cirrus.hibernate.test.Baz
addClass(cirrus.hibernate.test.Baz)
? done
<hibernate-mapping>
<!-- cirrus.hibernate.test.Baz root -->
<class name="cirrus.hibernate.test.Baz" table="Baz" select="distinct">
<id name="code" type="java.lang.String">
<column name="code" length="16"/>
<generator class="hilo.hex"/>
</id>
<!-- array name="setArray" type="[Ljava.util.Set;" -->
<!-- DUNNO: array of set name="setArray" type="java.util.Set" -->
<array role="setArray" table="setArray">
<key column="uid"/>
<index column="idx"/>
<element column="elm" type ="java.util.Set"/>
</array>
<!-- list name="setList" type="java.util.List" -->
<list role="setList" table="setList">
<key column="uid"/>
<index column="i"/>
<element column="elm/>
</list>
<!-- map name="stringDateMap" type="java.util.Map" -->
<map role="stringDateMap" table="stringDateMap">
<key column="uid"/>
<index column="key" type ="java.lang.String"/>
<element column="elm/>
</map>
<!-- set name="stringSet" type="java.util.Set" -->
<set role="stringSet" table="stringSet">
<key column="uid"/>
<element column="elm" type ="java.lang.String"/>
</set>
<!-- array name="fooArray" type="[Lcirrus.hibernate.test.Foo;" -->
<!-- association name="cirrus.hibernate.test.Foo" type="cirrus.hibernate.test.Foo" -->
<property name="cirrus.hibernate.test.Foo" column="cirrus.hibernate.test.Foo" type="cirrus.hibernate.test.Foo"/>
<!-- array name="components" type="[Lcirrus.hibernate.test.FooComponent;" -->
<!-- TO DO: array of component name="components" type="cirrus.hibernate.test.FooComponent" -->
<!-- set name="fooSet" type="java.util.Set" -->
<set role="fooSet" table="fooSet">
<key column="uid"/>
<element column="elm" type ="java.lang.String"/>
</set>
<!-- list name="customs" type="java.util.List" -->
<list role="customs" table="customs">
<key column="uid"/>
<index column="i"/>
<element column="elm/>
</list>
<!-- map name="stringArrayMap" type="java.util.Map" -->
<map role="stringArrayMap" table="stringArrayMap">
<key column="uid"/>
<index column="key" type ="java.lang.String"/>
<element column="elm/>
</map>
<!-- array name="stringArray" type="[Ljava.lang.String;" -->
<!-- array of basic name="stringArray" type="java.lang.String" -->
<array role="stringArray" table="stringArray">
<key column="uid"/>
<index column="idx"/>
<element column="elm" type ="java.lang.String"/>
</array>
<!-- list name="stringList" type="java.util.List" -->
<list role="stringList" table="stringList">
<key column="uid"/>
<index column="i"/>
<element column="elm/>
</list>
<!-- array name="intArray" type="[I" -->
<!-- array of basic name="intArray" type="int" -->
<primitive-array role="intArray" table="intArray">
<key column="uid"/>
<index column="idx"/>
<element column="elm" type ="int"/>
</primitive-array>
</class>
</hibernate-mapping>
|