Hi,
I believe that I am having the same problem as Praveen. I am also getting
the message "
406 simplewineTour WARN [main] openjpa.Enhance - Type "class
com.ibm.websphere.sample.jpawinetour.simple.xml.GrapeVariety" has no
metadata; enhancing as persistence aware."
for all of the classes in my ormap.xml file when I run PCEnhancer manually
from eclipse. If I change the PU to specify classes instead of the ormap.xml,
enhancement goes fine. This seemed to start with revision 536001 which I
picked up on 5/9/2007 and has continued since. If I go to an earlier
openjpa-all-0.9.8-incubating-SNAPSHOT.jar, enhancing using the
ormap.xmlworks. Also at that time I was able to replace
PCEnhancer.java with revision 532805 and after a maven rebuild, enhancement
using the ormap.xml file worked. Now under the 1.0.0-snapshot, that revision
is not available.
The persistence.xml and simpleWineTourXmlOrMap.xml files are in directory
jpa.MyWineSample/bin/META-INF where jpa.MyWineSample is my project name.
15 simplewineTour TRACE [main] openjpa.Runtime - Setting the following
properties from
"file:/C:/apacheEclipse3.2/openjpa_svn_regression/workspace/jpa.MyWineSample/bin/META-INF/persistence.xml"
into configuration:
{openjpa.jdbc.SynchronizeMappings=buildSchema(ForeignKeys=true),
openjpa.ConnectionDriverName=com.ibm.db2.jcc.DB2Driver,
openjpa.MetaDataFactory=jpa(Resources=META-INF/simpleWineTourXmlOrMap.xml),
openjpa.jdbc.DBDictionary=db2(StoreCharsAsNumbers=true),
openjpa.Id=simplewineTour, openjpa.Log=DefaultLevel=TRACE,
openjpa.ConnectionPassword=g1h0ngell,
openjpa.ConnectionURL=jdbc:db2://localhost:50000/dbclnt,
openjpa.ConnectionUserName=georgeh}
62 simplewineTour INFO [main] openjpa.Tool - No targets were given.
Running on all classes in your persistent classes list, or all metadata files
in classpath directories if you have not listed your persistent classes. Use
-help to display tool usage information.
78 simplewineTour TRACE [main] openjpa.MetaData - Scanning resource
"META-INF/simpleWineTourXmlOrMap.xml" for persistent types.
93 simplewineTour TRACE [main] openjpa.MetaData - Scan of
"META-INF/simpleWineTourXmlOrMap.xml" found persistent types
[Ljava.lang.String;@28b028b0.
93 simplewineTour TRACE [main] openjpa.MetaData - Mapping resource location
"file:/C:/apacheEclipse3.2/openjpa_svn_regression/workspace/jpa.MyWineSample/bin/META-INF/simpleWineTourXmlOrMap.xml"
to persistent types "[com.ibm.websphere.sample.jpawinetour.simple.xml.Address,
com.ibm.websphere.sample.jpawinetour.simple.xml.GrapeVariety,
com.ibm.websphere.sample.jpawinetour.simple.xml.Wine,
com.ibm.websphere.sample.jpawinetour.simple.xml.Winery,
com.ibm.websphere.sample.jpawinetour.simple.xml.WineLabel]".
93 simplewineTour TRACE [main] openjpa.MetaData - Scanning resource
"META-INF/orm.xml" for persistent types.
93 simplewineTour TRACE [main] openjpa.MetaData - parsePersistentTypeNames()
found [com.ibm.websphere.sample.jpawinetour.simple.xml.GrapeVariety,
com.ibm.websphere.sample.jpawinetour.simple.xml.WineLabel,
com.ibm.websphere.sample.jpawinetour.simple.xml.Wine,
com.ibm.websphere.sample.jpawinetour.simple.xml.Address,
com.ibm.websphere.sample.jpawinetour.simple.xml.Winery].
93 simplewineTour TRACE [main] openjpa.MetaData - Found 5 classes with
metadata in 31 milliseconds.
93 simplewineTour TRACE [main] openjpa.Tool - Enhancer running on type
"com.ibm.websphere.sample.jpawinetour.simple.xml.GrapeVariety".
171 simplewineTour TRACE [main] openjpa.MetaData - Loading metadata for
"class com.ibm.websphere.sample.jpawinetour.simple.xml.GrapeVariety" under mode
"[META]".
203 simplewineTour TRACE [main] openjpa.MetaData - Parsing resource
"file:/C:/apacheEclipse3.2/openjpa_svn_regression/workspace/jpa.MyWineSample/bin/META-INF/simpleWineTourXmlOrMap.xml".
312 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.Address".
312 simplewineTour TRACE [main] openjpa.MetaData - Generating default
metadata for type "com.ibm.websphere.sample.jpawinetour.simple.xml.Address".
328 simplewineTour TRACE [main] openjpa.MetaData - Using reflection for
metadata generation.
343 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.Address".
343 simplewineTour TRACE [main] openjpa.MetaData - Parsing package
"com.ibm.websphere.sample.jpawinetour.simple.xml.Address".
359 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.GrapeVariety".
359 simplewineTour TRACE [main] openjpa.MetaData - Generating default
metadata for type
"com.ibm.websphere.sample.jpawinetour.simple.xml.GrapeVariety".
359 simplewineTour TRACE [main] openjpa.MetaData - Using reflection for
metadata generation.
359 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.GrapeVariety".
359 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.Wine".
359 simplewineTour TRACE [main] openjpa.MetaData - Generating default
metadata for type "com.ibm.websphere.sample.jpawinetour.simple.xml.Wine".
359 simplewineTour TRACE [main] openjpa.MetaData - Using reflection for
metadata generation.
375 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.Wine".
375 simplewineTour TRACE [main] openjpa.MetaData - Generating default
metadata for type "com.ibm.websphere.sample.jpawinetour.simple.xml.WineLabel".
375 simplewineTour TRACE [main] openjpa.MetaData - Using reflection for
metadata generation.
375 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.Winery".
375 simplewineTour TRACE [main] openjpa.MetaData - Generating default
metadata for type "com.ibm.websphere.sample.jpawinetour.simple.xml.Winery".
375 simplewineTour TRACE [main] openjpa.MetaData - Using reflection for
metadata generation.
390 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.Winery".
390 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.WineLabel".
406 simplewineTour TRACE [main] openjpa.MetaData - Generating default
metadata for type "com.ibm.websphere.sample.jpawinetour.simple.xml.WineLabel".
406 simplewineTour TRACE [main] openjpa.MetaData - Using reflection for
metadata generation.
406 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.WineLabel".
406 simplewineTour TRACE [main] openjpa.MetaData - Finished parsing metadata
resource
"file:/C:/apacheEclipse3.2/openjpa_svn_regression/workspace/jpa.MyWineSample/bin/META-INF/simpleWineTourXmlOrMap.xml".
406 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.GrapeVariety".
406 simplewineTour TRACE [main] openjpa.Enhance - Enhancing type "class
com.ibm.websphere.sample.jpawinetour.simple.xml.GrapeVariety".
406 simplewineTour WARN [main] openjpa.Enhance - Type "class
com.ibm.websphere.sample.jpawinetour.simple.xml.GrapeVariety" has no metadata;
enhancing as persistence aware. If you intended for "class
com.ibm.websphere.sample.jpawinetour.simple.xml.GrapeVariety" to be
persistence-capable, then this means that OpenJPA could not find any metadata
for "class com.ibm.websphere.sample.jpawinetour.simple.xml.GrapeVariety". This
can happen if the directory containing your metadata is not in your CLASSPATH,
or if your metadata files are not named properly. See the documentation on
metadata placement for more information.
406 simplewineTour TRACE [main] openjpa.Tool - The class does not have
metadata - enhanced as persistence-aware.
421 simplewineTour TRACE [main] openjpa.Tool - Enhancer running on type
"com.ibm.websphere.sample.jpawinetour.simple.xml.WineLabel".
453 simplewineTour TRACE [main] openjpa.MetaData - Loading metadata for
"class com.ibm.websphere.sample.jpawinetour.simple.xml.WineLabel" under mode
"[META]".
453 simplewineTour TRACE [main] openjpa.MetaData - Skipping resource
"file:/C:/apacheEclipse3.2/openjpa_svn_regression/workspace/jpa.MyWineSample/bin/META-INF/simpleWineTourXmlOrMap.xml";
it was parsed previously.
453 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.WineLabel".
453 simplewineTour TRACE [main] openjpa.Enhance - Enhancing type "class
com.ibm.websphere.sample.jpawinetour.simple.xml.WineLabel".
468 simplewineTour WARN [main] openjpa.Enhance - Type "class
com.ibm.websphere.sample.jpawinetour.simple.xml.WineLabel" has no metadata;
enhancing as persistence aware. If you intended for "class
com.ibm.websphere.sample.jpawinetour.simple.xml.WineLabel" to be
persistence-capable, then this means that OpenJPA could not find any metadata
for "class com.ibm.websphere.sample.jpawinetour.simple.xml.WineLabel". This can
happen if the directory containing your metadata is not in your CLASSPATH, or
if your metadata files are not named properly. See the documentation on
metadata placement for more information.
468 simplewineTour TRACE [main] openjpa.Tool - The class does not have
metadata - enhanced as persistence-aware.
484 simplewineTour TRACE [main] openjpa.Tool - Enhancer running on type
"com.ibm.websphere.sample.jpawinetour.simple.xml.Wine".
500 simplewineTour TRACE [main] openjpa.MetaData - Loading metadata for
"class com.ibm.websphere.sample.jpawinetour.simple.xml.Wine" under mode
"[META]".
500 simplewineTour TRACE [main] openjpa.MetaData - Skipping resource
"file:/C:/apacheEclipse3.2/openjpa_svn_regression/workspace/jpa.MyWineSample/bin/META-INF/simpleWineTourXmlOrMap.xml";
it was parsed previously.
500 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.Wine".
500 simplewineTour TRACE [main] openjpa.Enhance - Enhancing type "class
com.ibm.websphere.sample.jpawinetour.simple.xml.Wine".
515 simplewineTour WARN [main] openjpa.Enhance - Type "class
com.ibm.websphere.sample.jpawinetour.simple.xml.Wine" has no metadata;
enhancing as persistence aware. If you intended for "class
com.ibm.websphere.sample.jpawinetour.simple.xml.Wine" to be
persistence-capable, then this means that OpenJPA could not find any metadata
for "class com.ibm.websphere.sample.jpawinetour.simple.xml.Wine". This can
happen if the directory containing your metadata is not in your CLASSPATH, or
if your metadata files are not named properly. See the documentation on
metadata placement for more information.
515 simplewineTour TRACE [main] openjpa.Tool - The class does not have
metadata - enhanced as persistence-aware.
546 simplewineTour TRACE [main] openjpa.Tool - Enhancer running on type
"com.ibm.websphere.sample.jpawinetour.simple.xml.Address".
546 simplewineTour TRACE [main] openjpa.MetaData - Loading metadata for
"class com.ibm.websphere.sample.jpawinetour.simple.xml.Address" under mode
"[META]".
546 simplewineTour TRACE [main] openjpa.MetaData - Skipping resource
"file:/C:/apacheEclipse3.2/openjpa_svn_regression/workspace/jpa.MyWineSample/bin/META-INF/simpleWineTourXmlOrMap.xml";
it was parsed previously.
546 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.Address".
546 simplewineTour TRACE [main] openjpa.Enhance - Enhancing type "class
com.ibm.websphere.sample.jpawinetour.simple.xml.Address".
562 simplewineTour WARN [main] openjpa.Enhance - Type "class
com.ibm.websphere.sample.jpawinetour.simple.xml.Address" has no metadata;
enhancing as persistence aware. If you intended for "class
com.ibm.websphere.sample.jpawinetour.simple.xml.Address" to be
persistence-capable, then this means that OpenJPA could not find any metadata
for "class com.ibm.websphere.sample.jpawinetour.simple.xml.Address". This can
happen if the directory containing your metadata is not in your CLASSPATH, or
if your metadata files are not named properly. See the documentation on
metadata placement for more information.
562 simplewineTour TRACE [main] openjpa.Tool - The class does not have
metadata - enhanced as persistence-aware.
562 simplewineTour TRACE [main] openjpa.Tool - Enhancer running on type
"com.ibm.websphere.sample.jpawinetour.simple.xml.Winery".
578 simplewineTour TRACE [main] openjpa.MetaData - Loading metadata for
"class com.ibm.websphere.sample.jpawinetour.simple.xml.Winery" under mode
"[META]".
578 simplewineTour TRACE [main] openjpa.MetaData - Skipping resource
"file:/C:/apacheEclipse3.2/openjpa_svn_regression/workspace/jpa.MyWineSample/bin/META-INF/simpleWineTourXmlOrMap.xml";
it was parsed previously.
578 simplewineTour TRACE [main] openjpa.MetaData - Parsing class
"com.ibm.websphere.sample.jpawinetour.simple.xml.Winery".
578 simplewineTour TRACE [main] openjpa.Enhance - Enhancing type "class
com.ibm.websphere.sample.jpawinetour.simple.xml.Winery".
578 simplewineTour WARN [main] openjpa.Enhance - Type "class
com.ibm.websphere.sample.jpawinetour.simple.xml.Winery" has no metadata;
enhancing as persistence aware. If you intended for "class
com.ibm.websphere.sample.jpawinetour.simple.xml.Winery" to be
persistence-capable, then this means that OpenJPA could not find any metadata
for "class com.ibm.websphere.sample.jpawinetour.simple.xml.Winery". This can
happen if the directory containing your metadata is not in your CLASSPATH, or
if your metadata files are not named properly. See the documentation on
metadata placement for more information.
578 simplewineTour TRACE [main] openjpa.Tool - The class does not have
metadata - enhanced as persistence-aware.
<?xml version="1.0"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="simplewineTour" >
<!-- <persistence-unit name="simplewineTour" transaction-type="RESOURCE_LOCAL">-->
<!--
<schema>TESTER</schema>
<provider>
org.apache.openjpa.persistence.PersistenceProviderImpl
</provider>
-->
<!--
<mapping-file>META-INF/simpleWineTourXmlOrMap.xml</mapping-file>
-->
<mapping-file>META-INF/simpleWineTourXmlOrMap.xml</mapping-file>
<!--
<class>com.ibm.websphere.sample.jpawinetour.simple.ano.Address</class>
<class>com.ibm.websphere.sample.jpawinetour.simple.ano.GrapeVariety</class>
<class>com.ibm.websphere.sample.jpawinetour.simple.ano.Wine</class>
<class>com.ibm.websphere.sample.jpawinetour.simple.ano.WineLabel</class>
<class>com.ibm.websphere.sample.jpawinetour.simple.ano.Winery</class>
-->
<properties>
<!-- derby embedded (default) -->
<!-- derby embedded (default) -->
<!--
<property name="openjpa.ConnectionUserName" value="xxx"/>
<property name="openjpa.ConnectionPassword" value="yyy"/>
<property name="openjpa.ConnectionURL" value="jdbc:derby:target/mdd-test-database;create=true"/>
<property name="openjpa.ConnectionDriverName" value="org.apache.derby.jdbc.EmbeddedDriver"/>
-->
<!-- udb2 type 2-->
<!--
value="db2(StoreCharsAsNumbers=false)"/>
-->
<!--
-->
<property name="openjpa.jdbc.DBDictionary"
value="db2(StoreCharsAsNumbers=true)"/>
<property name="openjpa.ConnectionDriverName" value="com.ibm.db2.jcc.DB2Driver"/>
<property name="openjpa.ConnectionURL" value="jdbc:db2://localhost:50000/dbclnt"/>
<property name="openjpa.ConnectionUserName" value="georgeh"/>
<property name="openjpa.ConnectionPassword" value="g1h0ngell"/>
<!-- oracle 10 good-->
<!--
<property name="openjpa.ConnectionUserName" value="user2"/>
<property name="openjpa.ConnectionPassword" value="tvforau2"/>
<property name="openjpa.ConnectionURL" value="jdbc:oracle:thin:@fvtdb03.rtp.raleigh.ibm.com:1521:orcl"/>
<property name="openjpa.ConnectionDriverName" value="oracle.jdbc.driver.OracleDriver"/>
-->
<property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema(ForeignKeys=true)" />
<!-- <property name="openjpa.QueryCache" value="false" />-->
<!--
<property name="openjpa.Log" value="DefaultLevel=INFO" />
<property name="openjpa.Log" value="Enhance=TRACE,Query=TRACE,SQL=TRACE" />
<property name="openjpa.Log" value="SQL=TRACE" />
<property name="openjpa.Log" value="DefaultLevel=TRACE" />
<property name="openjpa.Log" value="DefaultLevel=ERROR" />
-->
<property name="openjpa.Log" value="DefaultLevel=TRACE" />
<!-- <property name="openjpa.Sequence" -->
<!-- value="table(Table=OPENJPASEQ, Increment=100)"/>-->
</properties>
</persistence-unit>
</persistence>
<?xml version="1.0" encoding="UTF-8"?>
<!-- AtestCatalog metadata in xml -->
<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.ibm.websphere.sample.jpawinetour.simple.xml</package>
<!-- <schema>TESTER</schema>-->
<!---->
<named-query name="findOneWinery">
<query>
SELECT r FROM Winery r WHERE r.wineryid = ?1 order by r.wineryid asc
</query>
</named-query>
<named-query name="findAllWinesForOneWinery">
<query>
SELECT w FROM Winery r JOIN r.winesProduced w WHERE r.wineryid = ?1 order by r.wineryid asc
</query>
</named-query>
<named-native-query name="nativeFindAllWineryColumns">
<query>
SELECT r.* FROM Winery r WHERE r.wineryid = ?1 order by r.wineryid asc
</query>
</named-native-query>
<named-native-query name="nativeFindOneWinery"
result-class="Winery">
<query>
SELECT r.* FROM Winery r WHERE r.wineryid = ?1 order by r.wineryid asc
</query>
</named-native-query>
<named-native-query name="nativeFindOneWinery2"
result-set-mapping="WineryMapping">
<query>
SELECT r.* FROM Winery r WHERE r.wineryid = ?1 order by r.wineryid asc
</query>
</named-native-query>
<named-native-query name="nativeFindOneWine"
result-set-mapping="WineMapping">
<query>
SELECT w.* FROM Wine w WHERE w.wineid = ? order by w.wineid asc
</query>
</named-native-query>
<named-native-query name="nativeFindAllWinesForOneWinery"
result-set-mapping="WineryThenWineMapping">
<query>
<!-- all of these work but give different results if entity is detached-->
<!-- SELECT r.WINERYID, r.FIRSTTOURTIME, r.HASRETAILSHOP, r.HASWINETASTING, r.ISSCENIC, r.LASTTOURTIME, r.NAME, r.TOURSEASONENDDATE, r.TOURSEASONSTARTDATE, r.VERSION, r.ADDRESS_PHONE, w.wineid, w.cost, w.rating, w.type, w.description, w.alcoholPercent, w.ava, w.bottler, w.brandName, w.LABELWINECLASS , w.LABELWINECOLOR, w.estateBottled, w.hasSulfites, w.labelid, w.mlContents, w.qualityDesignation, w.vintage, w.vinyardName, w.wineName, w.minimumHoldYears, w.winery_wineryid FROM Winery r left join Wine w on r.wineryid = w.winery_wineryid WHERE r.wineryid = ?1 order by w.wineid asc-->
<!-- SELECT r.*, w.* FROM Winery r left join Wine w on r.wineryid = w.winery_wineryid WHERE r.wineryid = ?1 order by w.wineid asc-->
SELECT r.wineryid, w.wineid FROM Winery r left join Wine w on r.wineryid = w.winery_wineryid WHERE r.wineryid = ?1 order by w.wineid asc
</query>
</named-native-query>
<sql-result-set-mapping name="WineryMapping">
<entity-result entity-class="Winery"/>
</sql-result-set-mapping>
<sql-result-set-mapping name="WineMapping">
<entity-result entity-class="Wine"/>
</sql-result-set-mapping>
<sql-result-set-mapping name="WineryThenWineMapping">
<entity-result entity-class="Winery"/>
<entity-result entity-class="Wine"/>
</sql-result-set-mapping>
<entity name="Address" class="Address" access="FIELD">
<table name="wineryAddress"/>
<attributes>
<id name="phone">
<column length="10" />
</id>
<basic name="street" fetch="EAGER">
<column length="40" />
</basic>
<basic name="city">
<column length="20" />
</basic>
<basic name="state">
<column length="20" />
</basic>
<basic name="zip">
<column length="10" />
</basic>
<version name="version"/>
</attributes>
</entity>
<entity name="GrapeVariety" class="GrapeVariety" access="FIELD">
<table name="WineGrape"/>
<attributes>
<id name="name">
<column name="grapeName" length="40" />
</id>
<!-- <basic name="characteristics" fetch="EAGER"/>-->
<basic name="characteristics"/>
<version name="version"/>
<many-to-many name="winesMadeFrom" target-entity="Wine" fetch="LAZY" mapped-by="grapesUsed">
<!--<join-column name="tid" referenced-column-name="projid" table="tasktab" />-->
</many-to-many>
</attributes>
</entity>
<entity name="Wine" class="Wine" access="FIELD">
<table name="Wine"/>
<attributes>
<id name="wineid">
</id>
<basic name="type" fetch="EAGER">
<enumerated>STRING</enumerated>
</basic>
<basic name="cost" fetch="EAGER">
<enumerated>ORDINAL</enumerated>
</basic>
<basic name="rating">
<enumerated>ORDINAL</enumerated>
</basic>
<basic name="minimumHoldYears"/>
<basic name="description"/>
<basic name="stockCount"/>
<version name="version"/>
<many-to-one name="winery" target-entity="Winery" fetch="EAGER">
</many-to-one>
<many-to-many name="grapesUsed" target-entity="GrapeVariety" fetch="LAZY">
</many-to-many>
<embedded name="label">
<attribute-override name="appellation">
<column name="ava" length="40"/>
</attribute-override>
<attribute-override name="color">
<column name="labelWineColor" length="20"/>
</attribute-override>
</embedded>
</attributes>
</entity>
<entity name="Winery" class="Winery" access="FIELD">
<table name="Winery"/>
<attributes>
<id name="wineryid">
</id>
<basic name="name">
<column length="40" />
</basic>
<basic name="dateEstablished">
<column length="4" />
</basic>
<basic name="isScenic"/>
<basic name="hasTours"/>
<basic name="hasWineTasting"/>
<basic name="hasRetailShop"/>
<basic name="comment">
<column name="winery_comment"/>
</basic>
<version name="version"/>
<one-to-many name="winesProduced" target-entity="Wine" fetch="LAZY" mapped-by="winery">
</one-to-many>
<one-to-one name="address" target-entity="Address" fetch="EAGER">
</one-to-one>
</attributes>
</entity>
<!-- <entity name="xxx" class="xxx" access="FIELD">-->
<!-- <attributes>-->
<!-- DEFINE ALL many-to-one relationships first -->
<!-- THEN DEFINE ALL one-to-many relationships -->
<!-- THEN DEFINE ALL one-to-one relationships -->
<!-- DEFINE ALL many-to-many relationships -->
<!-- DEFINE ALL embedded properties -->
<!-- DEFINE ALL transient properties -->
<!-- </attributes>-->
<!-- </entity>-->
<embeddable class="WineLabel" access="FIELD">
<attributes>
<basic name="labelid"/>
<basic name="wineName">
<column length="40" />
</basic>
<basic name="brandName">
<column length="40" />
</basic>
<basic name="appellation"/>
<basic name="classification">
<column name="labelWineClass" length="20" />
<enumerated>STRING</enumerated>
</basic>
<basic name="color">
<column length="25" />
<enumerated>STRING</enumerated>
</basic>
<basic name="alcoholPercent"/>
<basic name="bottler">
<column length="40" />
</basic>
<basic name="mlContents"/>
<basic name="hasSulfites"/>
<basic name="vintage">
<temporal>TIMESTAMP</temporal>
</basic>
<basic name="qualityDesignation">
<column length="40" />
</basic>
<basic name="estateBottled"/>
<basic name="vineyardName">
<column length="40" />
</basic>
<transient name="wineLabelContents"/>
</attributes>
</embeddable>
</entity-mappings>