[jboss-cvs] JBossAS SVN: r96514 - projects/docs/enterprise/4.3.7/Release_Notes/en-US.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 18 19:48:03 EST 2009


Author: laubai
Date: 2009-11-18 19:48:02 -0500 (Wed, 18 Nov 2009)
New Revision: 96514

Modified:
   projects/docs/enterprise/4.3.7/Release_Notes/en-US/Release_Notes_CP07.xml
Log:
Added Hibernate release notes.

Modified: projects/docs/enterprise/4.3.7/Release_Notes/en-US/Release_Notes_CP07.xml
===================================================================
--- projects/docs/enterprise/4.3.7/Release_Notes/en-US/Release_Notes_CP07.xml	2009-11-19 00:38:15 UTC (rev 96513)
+++ projects/docs/enterprise/4.3.7/Release_Notes/en-US/Release_Notes_CP07.xml	2009-11-19 00:48:02 UTC (rev 96514)
@@ -374,41 +374,53 @@
 			Following is a list of issues fixed in this release:
 		</para>
 		<formalpara>
-			<title>JBoss Messaging</title>
+			<title>JBoss Hibernate</title>
 			<para>
 			<itemizedlist>
 				<listitem>
-					<para>
-						The JBoss Messaging component of the Enterprise Application Platform has been upgraded to version 1.4.0.SP3-CP08.patch01. A list of the included fixes is as follows:
-					</para>
-					<itemizedlist>
-						<listitem>
-							<para>
-								<ulink url="https://jira.jboss.org/jira/browse/JBPAPP-2259">JBPAPP-2259</ulink>: By increasing the allowed number of servers that are connected to a single host to 65535 in the <ulink url="http://jira.jboss.com/jira/browse/JBMESSAGING-1614">JBMESSAGING-1614</ulink> feature update, a unique key violation could occur. If the sending rate of messages within one node was equal to or greater than 32767 messages per millisecond (short.MAX_VALUE), and those messages were all stored in the database at the time, this would lead to a circumstance where two messages may have had identical ID numbers.
-							</para>
-							<para>
-								This Cumulative Patch release corrects this issue by updating the <filename>RotatingID.java</filename> and <filename>NullPersistenceManager.java</filename> files to decrease the allowed number of servers that are connected to a single host to 1023. The <filename>RotatingID.java</filename> file has also been modified to alter the message counter so that the format is now (beginning at the highest bit): 
-							</para>
-							<itemizedlist>
-								<listitem>
-									<para>
-										First 10 bits are the node ID 
-									</para>
-								</listitem>
-								<listitem>
-									<para>
-										Next 39 bits are the 4th to 42nd bits of system time 
-									</para>
-								</listitem>
-								<listitem>
-									<para>
-										Next 15 bits are the rotating counter 
-									</para>
-								</listitem>
-							</itemizedlist>
-						</listitem>
-					</itemizedlist>
+                  <para>
+                    <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-3060">JBPAPP-3060</ulink>: <literal>@JoinColumn</literal> mapping assumed that the column definition was void even if it was also defined by <literal>@ManyToOne</literal>. <filename>Ejb3JoinColumn.java</filename> has been updated so that defined column properties like <varname>length</varname>, <varname>precision</varname> and <varname>scale</varname> are observed in <literal>@JoinColumn</literal> mapping.
+                  </para>
 				</listitem>
+                <listitem>
+                      <para>
+                        <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-3052">JBPAPP-3052</ulink>: When <classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> generates identifiers, the select script generated is as follows:
+                      </para>
+                      <programlisting>
+select next_val id_val from hibernate_sequence for update
+                      </programlisting>
+                      <para>
+                        However, in PostgreSQL, <literal>as</literal> is required between <literal>next_val</literal> and <literal>id_val</literal>. See <ulink url="http://sql-info.de/en/postgresql/postgres-gotchas.html#1_1">http://sql-info.de/en/postgresql/postgres-gotchas.html#1_1</ulink> for further details.
+                      </para>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-3038">JBPAPP-3038</ulink>: Hibernate Core has been upgraded to version 3.2.4.SP1.CP09. Hibernate Annotations has been upgraded to version 3.3.1.GA.CP02. Hibernate Entity Manager has been upgraded to version 3.3.2.GA.CP01.
+                      </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-2900">JBPAPP-2900</ulink>: MySQL uses the <literal>TEMPORARY</literal> keyword to bypass implicit transaction commits. Previously, Hibernate used <literal>&lt;CREATE TEMPORARY TABLE&gt;</literal> with <literal>&lt;DROP TABLE&gt;</literal>. Omitting the <literal>TEMPORARY</literal> keyword caused an implicit commit, and immediate failure within an XA Transaction. <literal>&lt;DROP TEMPORARY TABLE&gt;</literal> is now supported and this issue no longer presents. 
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-2049">JBPAPP-2049</ulink>: the HQL translator attempted to render <literal>IS NULL</literal> and <literal>IS NOT NULL</literal> checks against a component by using tuple syntax. Exploded syntax is now used instead, to make SQL more readable.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-1998">JBPAPP-1998</ulink>: <exceptionname>EntityNotFoundException</exceptionname> is incorrectly thrown upon an optimistic locking failure when one <literal>EntityManager</literal> tries to delete an entity that has been updated by a different <literal>EntityManager</literal> and <varname>hibernate.jdbc.batch_versioned_data</varname> is set to <literal>false</literal> (the default value). <exceptionname>OptimisticLockException</exception>, the correct exception for this situation, is now thrown instead. 
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-1547">JBPAPP-1547</ulink>: By default, Sybase ASE 15 string comparisons are case-insensitive. The <methodname>org.hibernate.dialect.SybaseASE15Dialect.areStringComparisonsCaseInsensitive()</methodname> method now returns <literal>true</literal>.
+                        </para>
+                        <para>
+                            If the Sybase database is configured to perform case-sensitive operations, this setting will be incorrect. However, since Hibernate only uses this method for unit tests, this change has no effect on Hibernate's internal processing.
+                        </para>
+                    </listitem>
 			</itemizedlist>
 			</para>
 		</formalpara>
@@ -441,25 +453,279 @@
 			<title>Hibernate Known Issues</title>
 			<para>
 				<itemizedlist>
+                    <listitem>
+                      <para>
+                        <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-3105">JBPAPP-3105</ulink>: The number of elements that can be included in a single <methodname>IN</methodname> expression is limited to a certain number (for Oracle, 1000). If an Array or Collection is passed into the <methodname>IN</methodname> method, Oracle throws an error stating that the <methodname>IN</methodname> clause must contain at most 1000 items. This affects both HQL and Criteria API. To work around this issue, users should split large arrays and collections into sub-arrays or sub-collections. If 'in', use the form <code>in(1,2,...,1000) or in(1001+)</code>; if 'not in', use the form <code>not(1,2,...,1000) or in(1001+)</code>, as described in the JIRA.
+                      </para>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-3098">JBPAPP-3098</ulink>: When a filter with a <varname>collection-type</varname> parameter is used, and the number of parameters in that collection changes during the lifetime of the <classname>SessionFactory</classname>, the SQL is not updated to reflect the change in the number of parameters. This typically results in the following error:
+                      </para>
+                      <programlisting>
+java.sql.SQLException: Parameter index out of bounds. 2 is not between valid values of 1 and 1
+                      </programlisting>
+                      <para>
+                        This occurs only with HQL, not Criteria. There is currently no workaround, but the fix has been applied in the Hibernate Cumulative Patch branch and will be included in the next Cumulative Patch release.
+                      </para>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-3089">JBPAPP-3089</ulink>: A long <literal>IN</literal> list can cause a stack overflow error during parsing. A query element like:
+                      </para>
+                      <programlisting>
+where x in (:x)
+                      </programlisting>
+                      <para>
+                        or a manually constructed:
+                      </para>
+                      <programlisting>
+where x in (1,2,3,...)
+                      </programlisting>
+                      <para>
+                        can generate a stack overflow if the number of elements referenced by <literal>x</literal> exceeds a certain number which depends upon the amount of available stack space. For many Java Virtual Machines, the limit is between 9000 and 10000, assuming a relatively empty stack at the point of query execution. To work around this issue, users should split large numbers of elements into sub-groups. If 'in', use the form <code>in(1,2,...,1000) or in(1001+)</code>; if 'not in', use the form <code>not(1,2,...,1000) or in(1001+)</code>, as described in the JIRA.
+                      </para>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-3075">JBPAPP-3075</ulink>: If a database reserved keyword is used as a property name with a Hibernate Validator annotation (for example, <literal>@Min</literal> or <literal>@Max</literal>), it will cause exceptions in <literal>SchemaExport</literal>, even if you specify a column name. This is because Hibernate ignores the name specified. The workaround is to map the property name to another that is not a database reserved keyword with <literal>@Column</literal> annotation. The fix for this issue is expected in Hibernate 4.
+                      </para>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-3069">JBPAPP-3069</ulink>: The <literal>QueryByExampleTest.testJunctionNotExpressionQBE</literal> test fails in Sybase because <varname>ansinull</varname> is set to  <literal>off</literal> by default. This test builds a disjunction predicate such as <code>( OR^ (ex) (NOT ex) )</code>. This should match everything in the database, but because ANSI SQL evaluates all comparisons involving <literal>NULL</literal> values as <literal>UNKNOWN</literal>, not all matches are returned.
+                      </para>
+                      <para>
+                        To work around this issue, append this string to the JDBC URL:
+                      </para>
+                      <programlisting>
+?SQLINITSTRING=set ansinull on
+                      </programlisting>
+                      <para>
+                        If this is not possible, an alternative is to execute the following Java code (or similar) after getting a Hibernate Session, <literal>s</literal>.
+                      </para>
+                      <programlisting role="JAVA">
+s.connection().createStatement().execute("set ansinull on");
+                      </programlisting>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-3068">JBPAPP-3068</ulink>: Mapping an Enum as <literal>@Id</literal> on MySQL causes a <exceptionname>SchemaExport</exceptionname> exception with error messages similar to the following:
+                      </para>
+                      <programlisting>
+Unsuccessful: create table PlanetCheatSheet (planet tinyblob
+not null,mass double precision not null, numberOfInhabitants
+bigint not null, radius double precision not null, primary
+key (planet)) ENGINE=InnoDB
+BLOB/TEXT column 'planet' used in key specification without
+a key length
+                      </programlisting>
+                      <para>
+                        Currently, Hibernate binds the <varname>id</varname> property of an Enum type as a <literal>tinyBlob</literal> (on MySQL) without a <varname>length</varname> property. The workaround for this issue is currently to write your own DDL if your Enum property must be mapped as <literal>@Id</literal>
+                      </para>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-3056">JBPAPP-3056</ulink>: The Hibernate test <literal>org.hibernate.test.hql.ASTParserLoadingTest.java</literal> fails on DB2 with an SQL Error because of invalid use of a parameter marker. This occurs because DB2 does not support untyped parameters. To work around this issue, modify your queries so that the parameters are cast to an appropriate data type.
+                      </para>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-2945">JBPAPP-2945</ulink>: The Hibernate test <filename>org.hibernate.test.annotations.query.QueryAndSQLTest.java</filename> fails on PostgreSQL 8.3.7 with the following log messages: 
+                      </para>
+                      <screen>
+Caused by: org.postgresql.util.PSQLException: Method org.postgresql.jdbc3.Jdbc3PreparedStatement.setQueryTimeout(int) is not yet implemented.
+                      </screen>
+                      <para>
+                        This occurs because PostgreSQL JDBC driver does not support the <methodname>Statement.setQueryTimeout</methodname> method.
+                      </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-2839">JBPAPP-2839</ulink>: Failing to re-inject the interceptors for instrumented entities causes <exceptionname>NullPointerException</exceptionname>s when entities are retrieved from a deserialized <literal>PersistenceContext</literal>.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-2440">JBPAPP-2440</ulink>: When a cache provider cannot be found, a <errorname>NoClassDefFoundError</errorname> is thrown with the message:
+                        </para>
+                        <programlisting>net/sf/ehcache/CacheException</programlisting>
+                        <para>
+                          When a connection provider cannot be found, a <exceptionname>HibernateException</exceptionname> is thrown with the following message:
+                        </para>
+                        <programlisting>Could not instantiate connection provider: " + providerClass</programlisting>
+                        <para>
+                          If you experience these errors, we suggest checking the cache or connection provider configuration to ensure that the provider is included in the classpath.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-2316">JBPAPP-2316</ulink>: Hibernate does not currently provide property types that enable applications to process data in a long string or binary column as a Java String. This feature is expected in JBoss Enterprise Application Platform 5.1.0.GA.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-2315">JBPAPP-2315</ulink>: Hibernate does not currently provide property types that enable applications to process data in a <literal>java.sql.Types.LONGVARCHAR</literal> or <literal>java.sql.Types.CLOB</literal> column as a Java String. Processing of a <literal>java.sql.Types.LONGVARBINARY</literal> or <literal>java.sql.Types.BLOB</literal> as a Java <literal>byte[]</literal> is also unavailable. These features are expected in JBoss Enterprise Application Platform 5.1.0.GA.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-1722">JBPAPP-1722</ulink>: Sybase fails to insert a new entity if the entity overflows the column. However, it does not throw an exception, so Hibernate cannot tell that the insert has failed. To work around this issue, your application must validate entity properties to ensure that the value will not overflow the underlying column.
+                        </para>
+                    </listitem>
 					<listitem>
-						<para>
-							<ulink url="http://jira.jboss.com/jira/browse/JBPAPP-1709">JBPAPP-1709</ulink>: The JPA spec defines the constant with a value that has a typo in the class name:
-						</para>
+                      <para>
+                        <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-1709">JBPAPP-1709</ulink>: The version of <filename>ejb3-persistence.jar</filename> shipped with the current version of JBoss Enterprise Application Platform 4.x is incorrect. Hibernate Entity Manager currently ships <filename>ejb3-persistence.jar</filename> 1.0.0.GA, but it should use <filename>ejb3-persistence.jar</filename> 1.0.1.GA.
+                      </para>
+                      <para>
+                        There are two changes between the 1.0.0.GA and 1.0.1.GA versions of the JAR:
+                      </para>
+                      <itemizedlist>
+                        <listitem>
+                          <para>
+                            The JPA specification defines the constant with a value that has a typo in the classname:
+                          <para>
+                          <programlisting>javax.persistence.Persistence.PERSISTENCE_PROVIDER = "javax.persistence.spi.PeristenceProvider"</programlisting>
+                          <para>
+                            Because the JAR inluded in the JBoss Enterprise Application Platform does not include this typo, it is not compliant with the JPA specification. See <ulink url="http://opensource.atlassian.com/projects/hibernate/browse/EJB-321">http://opensource.atlassian.com/projects/hibernate/browse/EJB-321</ulink> for details.
+                          </para>
+                        </listitem>
+                        <listitem>
+                          <para>
+                            The Javadoc for <methodname>javax.persistence.Query.getSingleResult()</methodname> states that <exceptionname>EntityNotFoundException</exceptionname> will be thrown if there is no result. It should say <exceptionname>NoResultException</exceptionname>.
+                          </para>
+                        </listitem>
+                      </itemizedlist>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-1613">JBPAPP-1613</ulink>: Null values for columns mapped as Boolean in Sybase are persisted as <literal>0</literal> instead of <literal>null</literal>. The current workaround for this issue is to map these values as <literal>type="org.hibernate.test.where.NumericTrueFalseType"</literal> instead of <literal>type="boolean"</literal>.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-1555">JBPAPP-1555</ulink>: Sybase uses <literal>image</literal> and <literal>text</literal> instead of <literal>Blob</literal> and </literal>Clob</literal>, so there is no support for <literal>Blob</literal> and <literal>Clob</literal> on Sybase. This feature is expected in JBoss Enterprise Application Platform 5.1.0.GA. Currently, user-defined types can be created to process Sybase <literal>text</literal> and <literal>image</literal> properties.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-1554">JBPAPP-1554</ulink>: Sybase only allows only one entry (for example, column name or '*') in a subquery select list. The HQL function, <methodname>elements()</methodname>, fails when the collection elements have a composite ID, because the generated SQL contains a subquery select list with multiple entries. The workaround is to avoid using HQL <methodname>elements()</methodname> if the elements have a composite key. Instead, reformulate the HQL so that no subquery has multiple entries in its select list. 
+                        </para>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="http://jira.jboss.com/jira/browse/JBPAPP-1551">JBPAPP-1551</ulink>: Embedded classes are not considered when batch insert statements are ordered. There are two possible workarounds for this issue:
+                      </para>
+                      <itemizedlist>
+                        <listitem>
+                          <para>
+                            Leave <varname>ORDER_INSERTS</varname> at the default value (<literal>FALSE</literal>) when embedded classes are used.
+                          </para>
+                        </listitem>
+                        <listitem>
+                          <para>
+                            Explicitly call <methodname>session.save()</methodname> on child objects to enforce their SQL insertion orders.
+                          </para>
+                        </listitem>
+                      <itemizedlist>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="http://jira.jboss.com/jira/browse/JBPAPP-1546">JBPAPP-1546</ulink>: When using Sybase, <methodname>SchemaExport</methodname> cannot be used to create stored procedures while in chained transaction mode. The suggested workaround for this case is to add the following code follwing the defining of the new stored procedure:
+                        </para>
 <programlisting>
-javax.persistence.Persistence.PERSISTENCE_PROVIDER = "javax.persistence.spi.PeristenceProvider"
+&lt;database-object&gt;
+    &lt;create&gt;
+        sp_procxmode paramHandling, 'chained'
+    &lt;/create&gt;
+    &lt;drop/&gt;
+&lt;/database-object&gt; 
 </programlisting>
-						<para>
-							The version of <filename>ejb3-persistence.jar</filename> released in EAP is non-compliant with the JPA spec because it sets the correct classname (without the typo) for this constant. 
-						</para>
-						<para>
-							Javadoc for <methodname>javax.persistence.Query.getSingleResult()</methodname> says that the <exceptionname>EntityNotFoundException</exceptionname> will be generated if there is no result. The Javadoc should have mentioned the <exceptionname>NoResultException</exceptionname> instead.
-						</para>
-					</listitem>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-1545">JBPAPP-1545</ulink>: On Sybase, when a query has an ANSI join with three or more joins, and one join involves a union subclass, the query may fail with <exceptionname>SybSQLException</exceptionname> because a column is not within the scope of the joined table expression. The current recommendation is to avoid using join fetches that involve union subclasses.
+                      </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-1328">JBPAPP-1328</ulink>: When attempting to perform a delete or update statement with a subselect, the generated SQL will refer to an unknown table alias and cause the query to fail.
+                        </para>
+                        <para>
+                          Currently the workaround is to reverse the conditions in the <literal>where</literal> clause.
+                        </para>
+                        <para>Incorrect:</para>
+                        <programlisting>update Person set name = ?1 where id in (select c.id from Customer c) and name &lt;&gt; ?2</programlisting>
+                        <para>Correct:</para>
+                        <programlisting>update Person set name = ?1 where name &lt;&gt; ?2 and id in (select c.id from Customer c)</programlisting>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-1230">JBPAPP-1230</ulink>: When a <literal>DetachedCriteria</literal> is used as a subquery, the generated SQL contains a column alias in the subquery. On Sybase, a <exceptionname>SybSQLException</exceptionname> is thrown because Sybase does not allow column aliases in subqueries. The workaround for this issue is to use an HQL query instead of a <literal>DetachedCriteria</literal> in a subquery. 
+                        </para>
+                    </listitem>
+                     <listitem>
+                      <para>
+                        <ulink url="http://jira.jboss.com/jira/browse/JBPAPP-1229">JBPAPP-1229</ulink>: On Sybase, the text <literal>current_timestamp</literal> is not being recognised as a method mode by the translator. Only SQL function calls with parentheses are recognized as method modes. There is no workaround for this issue except to avoid relying upon function replacement for <literal>current_timestamp</literal>.
+                      </para>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="http://jira.jboss.com/jira/browse/JBPAPP-1123">JBPAPP-1123</ulink>: When <literal>@OrderBy</literal> is used on joined classes (using a join table), the generated SQL is invalid on MySQL, PostgreSQL, Oracle, and MSSQL because the "order by" clause qualifies the columns using the actual table name. The "order by" clause should use the table alias instead.
+                      </para>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="http://jira.jboss.com/jira/browse/JBPAPP-1082">JBPAPP-1082</ulink>: When a <varname>char</varname> property is used and it is not initialized, then Hibernate initializes it to <literal>0</literal> and persists a string containing the character <literal>\u0000</literal>. PostgreSQL throws an exception because it does not allow character <literal>\u0000</litearl> embedded in a string. An email thread describing this problem is available from:
+                      </para>
+                      <itemizedlist>
+                        <listitem>
+                          <para>
+                            http://markmail.org/message/jvzlzxw6ui2rcsmv#query:\u0000%20postgresql+page:1+mid:gpu34f4iwanbyjqh+state:results
+                          </para>
+                        </listitem>
+                      </itemizedlist>
+                      <para>
+                        There is currently no workaround for persisting <literal>\u0000</literal> in a <varname>char</varname> column using PostgreSQL.
+                      </para>
+                      <para>
+                        If the user intends to persist a NULL for an uninitialized char property instead of <literal>\u0000</literal>, then <varname>java.lang.Character</varname> should be used instead of the primitive <varname>char</varname> type. This avoids the exception when the property is initialized. Attempting to persist a <varname>java.lang.Character</varname> property that is set to <literal>\u0000</literal> still results in an exception. 
+                      </para>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="http://jira.jboss.com/jira/browse/JBPAPP-1075">JBPAPP-1075</ulink>: <literal>SchemaExport</literal> fails on Oracle and Sybase when a redundant <code>@Column( unique = true )</code> or <code>@UniqueConstraint( columnNames = { ... } )</code> annotation is used for a column that is implicitly defined as unique by the declared model. The workaround is to remove the redundant <code>@Column</code> annotation.
+                      </para>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="https://jira.jboss.org/jira/browse/JBPAPP-1071">JBPAPP-1071</ulink>: In some cases, when there are foreign key constraints defined on columns in a primary key, <literal>SchemaExport</literal> incorrectly declares them as nullable when it generates <code>CREATE TABLE</code> statements. This fails on MSSQL, DB2, and Sybase because those databases require primary key columns to be non-nullable.
+                      </para>
+                      <para>
+                        The workaround for this issue is to explicitly indicate which columns should be non-nullable,  such as:
+                      </para>
+                      <itemizedlist>
+                        <listitem><para>Add <code>nullable=false</code> to <literal>@JoinColumn</literal></para></listitem>
+                        <listitem><para>Add <code>optional=false</code> to <literal>@ManyToOne</literal></para></listitem>
+                        <listitem><para>Add an <literal>@AttributeOverride</literal> with <code>@Column(name="mapkey", nullable=false)</code> in case of a <literal>@CollectionOfElements</literal> using a Map</para></listitem>
+                        <listitem><para>Add <code>nullable=false</code> in <literal>@Column</literal> when inside a <literal>@CollectionId</literal> or inside <literal>@MapKey</literal></para></listitem>
+                      </itemizedlist>
+                    </listitem>
+                    <listitem>
+                      <para>
+                        <ulink url="http://jira.jboss.com/jira/browse/JBPAPP-1063">JBPAPP-1063</ulink>: Currently MySQL does not support millisecond and microsecond measurements when returning database values such as <literal>TIME</literal> and <literal>TIMESTAMP</literal>.
+                      </para>
+                    </listitem>
 					<listitem>
 						<para>
 							<ulink url="http://jira.jboss.com/jira/browse/JBPAPP-953">JBPAPP-953</ulink>: Hibernate Core and Annotations do not currently support the Hypersonic 1.8.0.8 database. Support for the version 1.8.0.8 of the Hypersonic database is no longer planned for future releases.
 						</para>
 					</listitem>
+                    <listitem>
+                        <para>
+                            <ulink url="http://jira.jboss.com/jira/browse/JBPAPP-909">JBPAPP-909</ulink>: Within the Hibernate component of the Enterprise Application Platform the HashMap and HashSet iteration order changed from past releases because of support for JDK 1.6. However this has meant that the order of columns in union clauses and union-subclasses has changed, generating a slight impact on the components performance. 
+                        </para>
+                    </listitem>
 				</itemizedlist>
 			</para>
 		</formalpara>




More information about the jboss-cvs-commits mailing list