After replacing 1.2.1 with 1.2.2 and turning on the metadata preload, I
got a nonsensical "column that is not compatible" error.  I then tried
removing the preload setting, and it's fine.  I set it back, and it
failed again, so it's repeatable.

The relevant part of the stack trace is this (some pieces obscured):

Caused by: <openjpa-1.2.2-r422266:898935 fatal user error>
org.apache.openjpa.persistence.ArgumentException:
"...domain.pricelist.PriceListFolder.childItems<element:class
...domain.pricelist.PriceList>" declares a column that is not compatible
with the expected type "blob".  Column details:
Full Name: PRICE_LIST.PRICE_LIST_ID
Type: varchar
Size: 255
Default: null
Not Null: false

The orm.xml excerpts:

    <entity name="PriceListFolder"
class="...domain.pricelist.PriceListFolder">
        <table name="GEN_FOL_PL"/>
        <secondary-table name="PLFOL_CHLD">
            <primary-key-join-column name="PLFOL_ID"
referenced-column-name="FOLDER_ID"/>
        </secondary-table>
        <inheritance strategy="SINGLE_TABLE"/>
        <discriminator-value>3001</discriminator-value>
        <discriminator-column name="TYPE" discriminator-type="INTEGER"/>
        <attributes>
            <one-to-many name="childItems" target-entity="PriceList">
                <join-column name="PRICE_LIST_ID"
referenced-column-name="PRICE_LIST_ID"/>
            </one-to-many>
        </attributes>
    </entity>

    <entity name="PriceList" class="...domain.pricelist.PriceList">
        <table name="PRICE_LIST"/>
        <secondary-table name="ONLINE_PRICE_LIST">
            <primary-key-join-column name="PRICE_LIST_ID"
referenced-column-name="PRICE_LIST_ID"/>
        </secondary-table>
        <attributes>
            <id name="id">
                <column name="PRICE_LIST_ID"/>
            </id>
            <basic name="displayName">
                <column name="DISPLAY_NAME"/>
            </basic>
            <basic name="description">
                <column name="DESCRIPTION"/>
            </basic>
            <basic name="startDate">
                <column name="START_DATE"/>
            </basic>
            <basic name="endDate">
                <column name="END_DATE"/>
            </basic>
            <one-to-many name="includedFlags"
target-entity="com.att.ecom.dynamiccontent.domain.catalog.Flag">
                <join-table name="ONLINE_PRICE_LIST_FLAGS">
                    <join-column name="PRICE_LIST_ID"
referenced-column-name="PRICE_LIST_ID"/>
                    <inverse-join-column name="FLAG_ID"
referenced-column-name="ID"/>
                </join-table>
            </one-to-many>
            <one-to-one name="basePriceList" target-entity="PriceList">
                <join-column name="BASE_PRICE_LIST"
referenced-column-name="PRICE_LIST_ID"/>
            </one-to-one>
        </attributes>
    </entity>

Notice that there is no "lob" anywhere.  The column it's complaining
about is an ordinary column reference.

Reply via email to