Details
-
Sub-task
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.0.0
-
None
-
None
-
WinXP
Description
Currently the migration tool (which is very useful!) replaces the 'not-null' attribute of Hibernate's 'property' with the 'optional' attribute for OpenJPA. However, when using runtime forward mapping with the resulting orm file the generated DDL doesn't recognise the value of the optional attribute. The database column has IS_NULL = YES.
So the first thing is, can we please replace this section in migration-actions.xml for the 'property' action:
<rename-attr from="not-null" to="optional">
<map-value from="true" to="false"/>
<map-value from="false" to="true"/>
</rename-attr>
with:
<promote-attr from="column" to="column" as="name">
....
<consume-attr from="not-null" to="nullable">
<map-value from="true" to="false"/>
<map-value from="false" to="true"/>
</consume-attr>
</promote-attr>
...because the nullable attribute is honoured by the DDL as required (e.g., nullable="false" becomes IS_NULL=NO in the db).
The second thing is that when I do this the values don't get reveresed as expected. For example, the following Hibernate line:
<property name="value" column="VALUE" type="text" length="10000000" not-null="true"/>
becomes:
<basic name="value">
<column length="10000000" name="VALUE" nullable="true"/>
</basic>
...instead of the expected nullable="false". Have you tested map-value elements when they're embedded inside consume-attr elements? It looks like it's not working there. They do appear to work however when inside rename-attr elements.