openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Holloway <t...@mousetech.com>
Subject Re: Mapping
Date Tue, 14 Nov 2006 12:06:04 GMT
Abe White wrote:
>> 1. The reverse mapping tool creates an orm.xml but not annotations on 
>> generated Java code. Any plans on this?
>>
>> 2. I fed an orm.xml to Hibernate 3. It works, but if Hibernate is 
>> clever enough to automatically translate between camelCase Java names 
>> and underscore-punctuated database names, it's beyond my limited 
>> skill. I had to manually insert name elements into the orm.xml for 
>> complex table and column definitions to make it function. It's good 
>> that openjpa is smarter than that, but on the whole, I think I'd 
>> prefer the more complete orm definition - or at least an option for 
>> it. For one thing, I'm not sure what the implications are when people 
>> start meddling with the generated items and define a situation where 
>> there's no simple algorithmic conversion between Java name and the 
>> database name.
>
> Are you saying that the orm.xml generated by the reverse mapping tool 
> did not have the table and column names set, wherever those names 
> differed from the JPA default for the generated class/field name?  
> Could you post an example class and the generated orm.xml?
> _______________________________________________________________________
> Notice:  This email message, together with any attachments, may contain
> information  of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated
> entities,  that may be confidential,  proprietary,  copyrighted  and/or
> legally privileged, and is intended solely for the use of the individual
> or entity named in this message. If you are not the intended recipient,
> and have received this message in error, please immediately return this
> by email and then delete it.
Here's the original, straight from the reverse mapping tool:

<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm 
orm_1_0.xsd" version="1.0">
    <package>
        com.mousetech.persist
    </package>
    <access>
        PROPERTY
    </access>
    <entity class="BusStops" metadata-complete="true">
        <attributes>
            <id name="stopId"/>
            <basic name="description"/>
            <basic name="elevation"/>
            <basic name="inbound"/>
            <basic name="latitude"/>
            <basic name="longitude"/>
            <basic name="sheltered"/>
            <basic name="street1Block"/>
            <basic name="street1Name"/>
            <basic name="street1Qualifier"/>
            <basic name="street1Type"/>
            <basic name="street2Block"/>
            <basic name="street2Name"/>
            <basic name="street2Qualifier"/>
            <basic name="street2Type"/>
            <one-to-many name="routeStops" mapped-by="busStops">
                <cascade>
                    <cascade-merge/>
                </cascade>
            </one-to-many>
            <one-to-many name="tripStops" mapped-by="busStops">
                <cascade>
                    <cascade-merge/>
                </cascade>
            </one-to-many>
        </attributes>
    </entity>

Here's what I had to do to make it work. I temporarily removed the 
one-to-many references to simplify getting onlone:

<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm 
orm_1_0.xsd" version="1.0">
    <package>
        com.mousetech.persist
    </package>
    <access>
        PROPERTY
    </access>
    <entity class="BusStops" metadata-complete="true">
        <table name="bus_stops"/>
        <sequence-generator name="busStopSeq"
             sequence-name="SEQ_BUS_STOPS"/>
        <attributes>
            <id name="stopId">
                <column name="stop_id"/>
                <generated-value strategy="SEQUENCE"
                    generator="busStopSeq"/>
            </id>
            <basic name="description"/>
            <basic name="elevation"/>
            <basic name="inbound"/>
            <basic name="latitude"/>
            <basic name="longitude"/>
            <basic name="sheltered"/>
            <basic name="street1Block">
                <column name="street1_block"/>           
            </basic>
            <basic name="street1Name">
                <column name="street1_name"/>           
            </basic>
            <basic name="street1Qualifier">
                <column name="street1_qualifier"/>           
            </basic>
            <basic name="street1Type">
                <column name="street1_type"/>                       
            </basic>
            <basic name="street2Block">
                <column name="street2_block"/>                       
            </basic>
            <basic name="street2Name">
                            <column name="street2_name"/>           
            </basic>
            <basic name="street2Qualifier">
                <column name="street2_qualifier"/>           
            </basic>
            <basic name="street2Type">
                <column name="street2_type"/>           
            </basic>

        </attributes>
    </entity>

Mime
View raw message