Release Notes for OpenJPA * Overview * License * Prerequisites * Documentation * Getting Involved * Bugs * Improvements * New Features * Task * Test Overview These notes describe the difference between OpenJPA release 1.2.0 and the preceding releases: 1.0.0, and 1.1.0. OpenJPA is a feature-rich implementation of the persistence part of Java Community Process JSR-220 (Enterprise JavaBeans 3.0), which is known as the Java Persistence API (JPA). OpenJPA can be used as a stand-alone POJO persistence layer, or it can be integrated into any EJB3.0 compliant container and many lightweight frameworks. This release of OpenJPA is 100% compliant with the JPA specification. Additional information on the OpenJPA project may be found at the project web site: http://openjpa.apache.org License Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. The license may also be found in LICENSE.txt which is included in each release of OpenJPA. Prerequisites In normal usage, OpenJPA requires Java 5 or higher and a relational database of some sort. Documentation If you have questions about OpenJPA, a good source of information is the online product manual. You can find the manual for the current release as well as older releases of OpenJPA at http://openjpa.apache.org/documentation.html If you can't find what you're looking for in the manual or would like more clarification you please post to the OpenJPA development mailing list. Information on all of the OpenJPA mailing lists may be found here: http://openjpa.apache.org/mailing-lists.html Getting Involved The Apache OpenJPA project is being built by the open source community for the open source community - we welcome your input and contributions! What we are looking for * Source code and fixes contributions * Documentation assistance * Product and feature suggestions * Detailed and constructive feedback * Articles and whitepapers How do I Contribute? * To discuss Apache OpenJPA topics check out the mailing lists. * Informal discussion also occurs on the #openjpa IRC channel on freenode.net. * Bugs and other issues can be posted on the project JIRA. OpenJPA 1.2.0 Release Notes Sub-task * [OPENJPA-159] - Make ManagedRuntime amenable to more transaction execution strategies * [OPENJPA-545] - Replace UUID implementation with JDK 5 alternatives * [OPENJPA-575] - Use do priv for to get CL for Oracle empty blob/clob * [OPENJPA-591] - Entities are flushed before being detached or serialized * [OPENJPA-598] - Make BatchingPreparedStatementManagerImpl more flexible and extensible * [OPENJPA-616] - InMemoryUpdate support for functions returning numeric value such as ABS, SQRT, SIZE etc. * [OPENJPA-648] - Table generator uses incorrect schema name * [OPENJPA-661] - Duplicate files included in binary assembly when using docbook-plugin Bug * [OPENJPA-20] - Query can return embeddable class * [OPENJPA-44] - metadata-complete element in orm.xml is ignored * [OPENJPA-51] - bad sql pushdown, sub select is missing from clause * [OPENJPA-112] - Native queries and named parameters: poor error message * [OPENJPA-209] - Query returning 2 entities w/unidir 1-1 relationship gets openjpa.persistence.ArgumentException: Address with the same id already exists in the L1 cache. * [OPENJPA-210] - Query returning 2 entities w/1-1 relationship returns wrong types in the result list * [OPENJPA-220] - Examples of using ElementJoinColumn show the wrong usage * [OPENJPA-241] - Extra SQL on lazy CMR load * [OPENJPA-286] - Can't merge detached One-To-Many child instance. The entities were implement by an internal Hash container. * [OPENJPA-340] - @UniqueConstraint and corresponding XML ignored * [OPENJPA-349] - No object inserted if entity only contain ID attribute and set to IDENTITY * [OPENJPA-365] - Unexpected behavior on finding a Composite Key entity with a single value. * [OPENJPA-393] - @Column(nullable=false) setting not taken into account for String field values * [OPENJPA-442] - JIRA-407 introduced backward compatibility problem in QueryImpl * [OPENJPA-456] - Missed to validate the column name length for Join Column * [OPENJPA-458] - OpenJPA doesn't throw standard JPA exceptions * [OPENJPA-459] - Problem with bulk updates in mySQL * [OPENJPA-462] - OptimisticException is thrown instead of OptimisticLockException * [OPENJPA-470] - Custom sequences specified via @SequenceGenerator must have parentheses at the end of the class name * [OPENJPA-494] - Single Table Inheritance Strategy causes errors when reading entities from the database (discriminator problem) * [OPENJPA-504] - Duplicate order numbers in relationshiptable for the same List field * [OPENJPA-533] - Bulk update can`t set null embedded object * [OPENJPA-565] - Duplicate @NamedQuery terminates subsequent @NameQuery definitions in @NamedQueries * [OPENJPA-567] - @OrderColumn generates duplicate order numbers. * [OPENJPA-572] - Merge operation fails with IdClass composite key * [OPENJPA-573] - JPQL: The combination LIKE ESCAPE does not accept parameters * [OPENJPA-574] - Cached object in DataCache not evicted due to StatementBatching not reporting OptimisticException * [OPENJPA-581] - JNDI lookup failures are not generating useful messages * [OPENJPA-586] - Binding Query parameter fails validation for Externalized field * [OPENJPA-589] - Can not retrieve M-to-M data when DataCache is on * [OPENJPA-590] - The push-down sql for JPQL has unpredictable ordering in the set clause for update statement * [OPENJPA-594] - Incorrect schema separator used for Informix tables * [OPENJPA-595] - An error occurred while parsing the query filter "SELECT t FROM PessimisticA t WHERE t.id = ?1". Error message: No field named "id" in class "t" * [OPENJPA-596] - ClassCastException during in-memory update with Informix IDS 10.0 * [OPENJPA-602] - NullPointerException at org.apache.openjpa.jdbc.meta. strats.RelationToManyInverseKeyFieldStrategy.map * [OPENJPA-605] - Informix will throw an exception when a unique index is explictily created on the primary key columns * [OPENJPA-606] - InformixDictionary default setting beaks many testcases * [OPENJPA-607] - Extraneous "( )" on DISTINCT, ALL, ANY results in SQL syntax errors on some database systems * [OPENJPA-612] - Add support for calculating update value in QueryImpl.updateInMemory * [OPENJPA-614] - SqlServer does not support Timestamp precision in nano second * [OPENJPA-617] - Use of hardcoded DB platform strings should be avoided * [OPENJPA-619] - Typos in the manual * [OPENJPA-622] - Informix -lock timieout, cursor not open problem for NonJTA datasource transaction RESOURCE_LOCAL in JEE * [OPENJPA-625] - Error when removing embeddable entities from a persistent collection * [OPENJPA-629] - When creating foreign keys the schema name is not trimmed for WS before checking DB * [OPENJPA-630] - Honor batchlimit=1 in statement batching support. * [OPENJPA-634] - SQLException not reported from Batched statement * [OPENJPA-637] - Significant performance degradation when data cache is enabled * [OPENJPA-642] - Sybase create foreign key on delete set null failed with syntax error * [OPENJPA-644] - Handle databaseProductVersion string from newer jcc driver for DB2 ISeries * [OPENJPA-647] - Dynamic update to DataCacheTimeout property is not updated in the ClassMetadata * [OPENJPA-653] - Concurrency issue with query cache enabled * [OPENJPA-656] - Incorrect connection URL causes NPE when using JDBC Driver * [OPENJPA-657] - Compile error: "The method getTextContent() is undefined for the type Node" * [OPENJPA-659] - No state snapshot is available on @Embedded class when using runtime enhancement via spring-tomcat-weaver * [OPENJPA-660] - ClassCastException when using OneToMany Relation and collection is subclass using Discriminator with SINGLE_TABLE strategy. * [OPENJPA-664] - OpenJPA should prohibit when the name of a schema components such as Table, Column, Constraint exceeds maximum permissible length for the database platform * [OPENJPA-665] - OpenJPA allows commit where fields with @Column(nullable=false) set to null * [OPENJPA-668] - Test failures with IBM JDK (xml parsing) * [OPENJPA-669] - NativeSequences can be incremented within the business transaction * [OPENJPA-670] - Discriminator column is missing from table when inheritance is used without annotation Improvement * [OPENJPA-149] - non-jta-data-source must be specified in WebSphere environments * [OPENJPA-235] - SQL reordering to avoid non-nullable foreign key constraint violations * [OPENJPA-407] - Cache SQL (or closer precursors to SQL) more aggressively * [OPENJPA-515] - OpenJPA extension for distributed databases * [OPENJPA-570] - Misleading "Found duplicate query" warning message * [OPENJPA-578] - Specifying a default for VersionStrategy in persistence.xml has no effect when a version field is present in the entity class. * [OPENJPA-584] - OpenJPA-149 changes are not IDE friendly * [OPENJPA-601] - Remove connection requirement for build action in SchemaTool * [OPENJPA-604] - Log spec sets in persistence unit's property fail with exception when run in different locale * [OPENJPA-631] - Report detailed message when executeBatch throws SQLException for DB2 * [OPENJPA-633] - Update the release process to use maven plugins * [OPENJPA-666] - MS SQL Server 2005 does not support native sequences. * [OPENJPA-667] - Documentaion on configuration properties should link to corresponding JavaDoc method description New Feature * [OPENJPA-187] - MEMBER OF query fails on OpenJPA, but works fine with TopLink and Hibernate EM * [OPENJPA-305] - Dynamic configuration of EntityManagerFactory OpenJPA 1.1.0 Changes: http://svn.apache.org/viewvc/openjpa/tags/1.1.0/openjpa-project/CHANGES.txt?view=markup OpenJPA 1.0.0 Changes: http://svn.apache.org/viewvc/openjpa/tags/1.0.0/openjpa-project/CHANGES.txt?view=markup