# Release Notes for Apache OpenJPA 2.0.0 Milestone 4

- Overview
- Prerequisites
- Documentation
- Getting Involved
- License
- Notice
- Release Notes

- 2.0.0 Milestone 4
- 2.0.0 Milestone 3
- 2.0.0 Milestone 2
- 2.0.0 Milestone 1

- Release Notes for previous OpenJPA releases

## Overview

This distribution of Apache OpenJPA builds upon the prior releases which provided a feature-rich implementation of the Java Persistence API (JPA 1.0) part of Java Community Process JSR-220 (Enterprise JavaBeans 3.0) by includng some early-draft specification functionality from the Java Community Process JSR-317 (JPA 2.0) Proposed Final Draft 2 on 09/22/2009.

Some of the key features included in this distribution:

- TBD

This Milestone 4 distribution is based upon the contributions provided in development iterations 12 through XXX, as defined in the JPA 2.0 Roadmap at: http://openjpa.apache.org/jpa-20-roadmap.html

The JPA 2.0 Roadmap contains a complete list of implemented features and feature summaries, including what is on deck for future iterations.

Additional information on the OpenJPA project may be found at the project web site: http://openjpa.apache.org

## 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.

## 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.

## Notice

Copyright 2006-2009 Apache Software Foundation
This product includes software developed at The Apache Software Foundation (http://www.apache.org/).

This is an implementation of an early-draft specification developed under the Java Community Process (JCP). The code is untested and presumed not to be a compatible implementation of the JSR-317 Java Persistence API, Version 2.0 specification. We encourage you to migrate to an implementation of the JSR-317 Java Persistence API, Version 2.0 specification that has been tested and verified to be compatible as soon as such an implementation is available, and we encourage you to retain this notice in any implementation of JSR-317 Java Persistence API, Version 2.0 specification that you distribute.

OpenJPA includes the persistence and orm schemas from the JPA specifications.
Copyright 2005-2009 Sun Microsystems, Inc. All rights reserved.
OpenJPA elects to include this software in this distribution under the CDDL license.
You can obtain a copy of the License at: https://glassfish.dev.java.net/public/CDDL+GPL.html
The source code is available at: https://glassfish.dev.java.net/source/browse/glassfish/

The complete list of notices can be found in NOTICE.txt included in each assembly.

## Release Notes

### OpenJPA 2.0.0 Milestone 4

#### TBD

### OpenJPA 2.0.0 Milestone 3

#### Sub-task

- [OPENJPA-849] - Add metadata-type getter methods to EntityManager
- [OPENJPA-946] - Oracle create table(s) exceptions
- [OPENJPA-1013] - Build strictly-typed Criteria API
- [OPENJPA-1033] - Update supported database and driver matrix
- [OPENJPA-1076] - PersistenceProviderResolver interface and PersistenceProviderResolverHolder class
- [OPENJPA-1078] - Cache mode elements added to persistence.xml
- [OPENJPA-1082] - Validation target groups via persistence.xml or createEMF properties Map
- [OPENJPA-1083] - org.apache.openjpa.persistence.kernel.TestEJBState fails with two exceptions ORA-00904 and ORA-02275 against oracleDB.
- [OPENJPA-1106] - Integration tests for Bean Validation providers - Part 1
- [OPENJPA-1107] - Provide TraversableResolver for use with Bean Validation Factory
- [OPENJPA-1111] - Validation mode of callback should cause a PersistenceException when no provider is available
- [OPENJPA-1130] - Use maven-jar-plugin to create a o-p-j-tests.jar to share base TestCase classes across modules
- [OPENJPA-1131] - Upgrade to maven-jar-plugin-2.2
- [OPENJPA-1149] - Add embeddables sample to the examples module
- [OPENJPA-1157] - Integration tests for Bean Validation providers - Part 2
- [OPENJPA-1164] - Make sleepTime in SimpleWBCallback configurable
- [OPENJPA-1167] - Use Geronimo EA4 JPA spec jar
- [OPENJPA-1175] - Implement PersistenceUtil and isLoaded methods on the provider
- [OPENJPA-1176] - Properties marked as private are no longer persistent
- [OPENJPA-1177] - Upgrade to Bean Validation JSR-303 1.0 CR3 Spec API
- [OPENJPA-1182] - PreUpdate and PostUpdate behavior
- [OPENJPA-1190] - Use Geronimo EA5 JPA spec jar
- [OPENJPA-1208] - Set specification level based upon persistence.xml version
- [OPENJPA-1210] - Specify derby timeouts via properties.
- [OPENJPA-1213] - query.setParameter() behaviour
- [OPENJPA-1214] - RelationFieldStrategy behaviour
- [OPENJPA-1215] - detach()/detachCopy() behaviour
- [OPENJPA-1220] - Disable DynhamicEnhancerAgent for maven builds
- [OPENJPA-1223] - Update documentation for autoOff config option
- [OPENJPA-1228] - Change in default value of exclude-unlisted-classes in JPA 2.0
- [OPENJPA-1231] - Bean Validation sample
- [OPENJPA-1233] - Update DerbyDictionary with new reserved words
- [OPENJPA-1235] - Support for optional name property on UniqueConstraint annotation and XML
- [OPENJPA-1237] - WriteBehind configuration exception not thrown when it should be
- [OPENJPA-1238] - Upgrade to latest commons-pool and commons-dbcp
- [OPENJPA-1240] - Lob, Temporal, Enumerated on element collections annotations and in XML
- [OPENJPA-1246] - Add configuration example for Ingres to User manual
- [OPENJPA-1247] - WriteBehindCallback sleepTime interval of one EMF datacache adversely impacting other EMF datacache
- [OPENJPA-1252] - Include a Derby Network Server test profile
- [OPENJPA-1261] - JPQL query result shape for multi-selections including multi-select-new-constructor
- [OPENJPA-1264] - Support shared-cache-mode element
- [OPENJPA-1266] - JDBC date/timestamp literals in JPQL
- [OPENJPA-1270] - Assert that relationships defined in a mapped superclass must be unidirectional
- [OPENJPA-1271] - Support CacheStoreMode and CacheRetrieveMode properties for EntityManager
- [OPENJPA-1272] - Add tests for element collection association overrides defined in XML
- [OPENJPA-1274] - Support cascade-detach via orm.xml
- [OPENJPA-1282] - Update validation spec api and provider dependencies to spec level CR5
- [OPENJPA-1292] - NullPointerException when handling WriteBehindConfigurationException
- [OPENJPA-1298] - WriteBehindCache Callback Singleton
- [OPENJPA-1301] - EntityManagerFactoryImpl
- [OPENJPA-1309] - DB2 requires CAST for argument passed to datastore MOD function
- [OPENJPA-1310] - SQLServer requires XML in UTF-16 instead of UTF-8
- [OPENJPA-1315] - org.apache.openjpa.persistence.QueryImpl
- [OPENJPA-1319] - EntityManagerImpl
- [OPENJPA-1323] - Relax em.refresh TransactionRequireException thown condition
- [OPENJPA-1327] - Document JPQL Query updates

#### Bug

- [OPENJPA-386] - org.apache.openjpa.meta.ClassMetaData.validateAppIdClass() does not take @MappedSuperclass into account
- [OPENJPA-466] - Primary key constraint violated using (Oracle) sequence to generate ID in multithreaded app
- [OPENJPA-525] - Inserts new entity with NULL value for Clob column actually inserts empty string
- [OPENJPA-890] - Typos and inconsistent method signature styles in the user manual
- [OPENJPA-922] - setByteArrayInputStream being used in stead of setBytes
- [OPENJPA-932] - Runtime enhancer doesn't work propery if there is a trailing persistence.xml file on the classpath.
- [OPENJPA-934] - Oversight in TestSequenceGenerator
- [OPENJPA-973] - Allow DB2 JCC driver to work with Informix database
- [OPENJPA-1002] - Select range doesn't work on Oracle JDBC driver
- [OPENJPA-1043] - JPQL queries do not support queries on a MappedSuperclass
- [OPENJPA-1049] - Query against a MappedSuperclass is not supported
- [OPENJPA-1061] - Entities extending from a Mapped Superclass that defines the ID fields share the same ObjectID type parameter
- [OPENJPA-1065] - Prepared Query Cache does not work with DataCache
- [OPENJPA-1100] - @Version-Annotation on Column with unsupported type (e.g. BigDecimal) is silently ignored, but should raise an error
- [OPENJPA-1116] - Annotation Strategy not working
- [OPENJPA-1117] - Missing AgentClass attribute in openjpa-all-xxx.jar manifest.mf
- [OPENJPA-1119] - NPE in InstrumentationFactory
- [OPENJPA-1120] - idEquals() broken in BigDecimalId and BigIntegerId
- [OPENJPA-1125] - A message is logged about dynamically loading the class enhancer even though I'm using the -javaagent
- [OPENJPA-1127] - Typos in user manual and log messages
- [OPENJPA-1132] - Dropping constraints fails on MySQL
- [OPENJPA-1133] - DBDictionary.getPlaceholderValueString returns 0 for boolean which fails in PostgreSQL database.
- [OPENJPA-1135] - Overrides are not applied when embeddables are defined in XML
- [OPENJPA-1139] - checkstyle results in velocity errors in build output
- [OPENJPA-1156] - Path length issues on Windows
- [OPENJPA-1158] - Incorrect handling of long values in AbstractResult
- [OPENJPA-1159] - Bad error message for find of an Entity with compound primary key if parameter of wrong class
- [OPENJPA-1163] - Data consistency issues while modifying collections.
- [OPENJPA-1168] - NPE in UUIDGenerator.initializeForType1()
- [OPENJPA-1170] - Upgrade to Bean Validation JSR-303 1.0 CR2 Spec API
- [OPENJPA-1174] - OpenJPA performs differently with orm.xml and annotations
- [OPENJPA-1184] - Inverse relations not set for MapKey field when using parallel eager select
- [OPENJPA-1200] - Incorrect Entity is returned if ElementClassCriteria is not selected.
- [OPENJPA-1201] - "Mapped by" field not set when contained in superclass
- [OPENJPA-1203] - JPA2 - createEMF should return null for unhandled PUs
- [OPENJPA-1204] - Argument type mismatch when an EmbeddedId contains an Emun type
- [OPENJPA-1206] - Bean validation call to provider not Java 2 Enabled
- [OPENJPA-1217] - Ensure comparisons do not contain two parameters with Derby (ie SELECT ... WHERE ? = ?)
- [OPENJPA-1218] - Cache.evict(Clazz) should remove subclasses as well
- [OPENJPA-1221] - Change openjpa-integration module pom's to reflect proper artifact-id
- [OPENJPA-1226] - Can not merge entity with nested embeddable
- [OPENJPA-1227] - SQL generation error when using data cache
- [OPENJPA-1230] - javax.persistence.validation.mode property in createEMF map failed to create emf
- [OPENJPA-1239] - Explicit access type set incorrectly within collection of embeddable with nested embeddable
- [OPENJPA-1242] - Unable to cascade delete an entity in an embeddable
- [OPENJPA-1250] - @ElementCollection with eagar fetch of a List<String> collection is causing a ClassCastException on a em.find(entity).
- [OPENJPA-1253] - JoinColumn annotation not allowed in conjunction with *ToMany annotation
- [OPENJPA-1256] - get java.lang.ClassCastException when IdClass contains an Enum Field
- [OPENJPA-1260] - Wrong sequence is generated for custom native sequence generator from getIdGenerator.
- [OPENJPA-1269] - The table attribute in the MapKeyColumn annotation is not honored
- [OPENJPA-1279] - Query results are not inserted into StoreCache properly
- [OPENJPA-1281] - Reparameter is not working properly for some sql if PreparedQueryCache is on
- [OPENJPA-1283] - Incorrect SQL for JPQL query selecting Map value from an elementCollection of a Map and the map the value is an embeddable
- [OPENJPA-1284] - Fix missing 1.0 schema license headers
- [OPENJPA-1286] - Relationships in mapped superclass must be unidirectional
- [OPENJPA-1294] - Nested JDBC calls fail for certain database
- [OPENJPA-1295] - Query with Escape '\' fails in MySQL
- [OPENJPA-1302] - Ehcache product derivation isn't detected when running in WebSphere
- [OPENJPA-1305] - WriteBehind 'callback; broker should always be unmanaged
- [OPENJPA-1333] - Oracle driver returns incorrect update count on batched insert
- [OPENJPA-1338] - Allow comparison for VALUE(e) that maps to basic type

#### Improvement

- [OPENJPA-250] - Reduce synchronization bottlenecks in data cache, metadata repository, and lifecycle event manager
- [OPENJPA-651] - Disable dangerous "fallback enhancement", make openjpa.RuntimeUnenhancedClasses=unsupported the default
- [OPENJPA-703] - Cache ResultObjectProvider data to improve query performance
- [OPENJPA-952] - Utilize Sun JDK's Attach API to dynamically load the OpenJPA enhancer agent
- [OPENJPA-968] - Change in default detach() behavior for JPA 2.0
- [OPENJPA-1000] - Consistent usage of serialVersionUID
- [OPENJPA-1050] - Use generic types and remove casts wherever applicable
- [OPENJPA-1122] - Remove JDBC 3 related reflection from DBDictionary
- [OPENJPA-1126] - Note on Calendar and Java 1.3 no longer needed in user manual
- [OPENJPA-1136] - Add .gitignore for git users
- [OPENJPA-1146] - Shaded RuntimeUnenhancedClass(s)esModes
- [OPENJPA-1151] - Cache the current-time timestamp in AbstractQueryCache.onTypesChanged()
- [OPENJPA-1171] - Use StringBuilder instead of StringBuffer in SQLBuffer
- [OPENJPA-1180] - Query Parameter processing in JPA 2.0
- [OPENJPA-1245] - Move locking tests to a separate module
- [OPENJPA-1285] - Dynamic JDBC4 connection wrapper should maintain constructor refernce for faster instantiation
- [OPENJPA-1287] - Criteria query to generate 'optimize for 1 row' for DB2 if selection is an aggregate function

#### New Feature

- [OPENJPA-918] - Stored procedures not handling returns properly
- [OPENJPA-948] - Ingres DBDictionary
- [OPENJPA-1008] - Generate meta-model for JPA 2.0
- [OPENJPA-1009] - Populate canonical meta-model for strictly typed Criteria Query building
- [OPENJPA-1010] - Instantiate meta-model classes for JPA 2.0 from source code annotations
- [OPENJPA-1014] - Build weakly-typed Criteria API
- [OPENJPA-1089] - Provide for password encryption within persistence.xml
- [OPENJPA-1123] - MySQL query hints support
- [OPENJPA-1150] - Add WriteBehind mode to cache updates before flushing to backing store
- [OPENJPA-1187] - Output control for generated canonical metamodel source code
- [OPENJPA-1195] - Allow datastore function as query expression
- [OPENJPA-1198] - Query by Example
- [OPENJPA-1209] - OpenJPA 2.0 iteration 10 primary task
- [OPENJPA-1225] - Improve query result processing with composite pattern
- [OPENJPA-1241] - Add support for joining via keys of a Map attribute for Criteria query
- [OPENJPA-1251] - Add setProperty() method for JPA 2.0 EntityManager
- [OPENJPA-1265] - Support Edit on Criteria Query
- [OPENJPA-1267] - Support JDBC Escape syntax for temporal types on Criteria Query
- [OPENJPA-1268] - OpenJPA 2.0 iteration 11 primary task
- [OPENJPA-1276] - Support CQL for Criteria Query
- [OPENJPA-1277] - Support JPQL to Criteria Query conversion
- [OPENJPA-1278] - Define interfaces for OpenJPA specific extension to Criteria Query API
- [OPENJPA-1288] - Support alias() on Criteria Query API
- [OPENJPA-1330] - Support uni-/bi-directional Many-To-One mapping using Join Table Strategy
- [OPENJPA-1331] - Support bi-/uni-directional One-to-One mappin using Join Table Strategy

#### Task

- [OPENJPA-1143] - Synch JPA 2.0 development with evolving JPA 2.0 Spec
- [OPENJPA-1229] - OpenJPA 2.0 milestone 3 distribution
- [OPENJPA-1262] - Update to JPA Spec Version EA7 (dated 08-19-2009)
- [OPENJPA-1275] - Update to JPA Spec Version Public Draft Version 2 (dated 08-31-2009)
- [OPENJPA-1290] - Document Criteria API

#### Test

- [OPENJPA-1071] - Derby test suit speed-up
- [OPENJPA-1124] - TestDateQueries and TestQueryTimeout are locale dependent
- [OPENJPA-1147] - Streaming LOB tests and TestAutoIncrement not executed by test suite
- [OPENJPA-1148] - Build failures with 64bit Sun JDK6 on Linux due to PermGen space
- [OPENJPA-1222] - Enable Criteria testcases

### OpenJPA 2.0.0 Milestone 2 Release

#### Sub-task

- [OPENJPA-722] - persist - clear - merge scenario doesn't work
- [OPENJPA-744] - Extra SQL on LAZY/EAGER ManyToOne relation
- [OPENJPA-754] - Un-scheduled pre/postUpdate callbacks from persist.
- [OPENJPA-765] - Check for insertable or updateable before checking value for null
- [OPENJPA-770] - Use annotations instead of excluding tests in pom.xml
- [OPENJPA-782] - Support for collections of embeddables and basic types
- [OPENJPA-803] - Update SequenceGenerator to support schema and catalog
- [OPENJPA-804] - JPA 2.0 spec API update - iteration 1
- [OPENJPA-805] - JPQL updates - iteration 1
- [OPENJPA-809] - Support JPA 2.0 Cache Interface
- [OPENJPA-823] - Add JPA 2.0 schemas and appropriately validate for version
- [OPENJPA-837] - OpenJPA 2.0: Update OpenJPA documentation with new persistence schemas
- [OPENJPA-850] - Support equivalent names for plug-in value
- [OPENJPA-851] - Support for enhanced map collection (and corresponding annotations)
- [OPENJPA-855] - JPA2 Query support for Index function
- [OPENJPA-856] - JPA2 Query support for entity type expressions
- [OPENJPA-861] - Update the manual for XML column support for MySQL
- [OPENJPA-865] - JPA2 Query support for collection-valued input parameters in IN Expression predicate
- [OPENJPA-869] - Support @OrderColumn annotation and XML-based definition - phase 2
- [OPENJPA-870] - Support orphanRemoval attribute on relationships
- [OPENJPA-871] - Support derived identity
- [OPENJPA-878] - Support default query hint for query timeout
- [OPENJPA-879] - JPA2 Query support for general and qualified identification variable
- [OPENJPA-880] - Use maven-remote-resources-plugin to generate required legal files
- [OPENJPA-885] - Support clear methods on EntityManager, including new CascadeType.CLEAR
- [OPENJPA-891] - JPA2 LockTypeMode Support
- [OPENJPA-903] - org.apache.openjpa.persistence.exception.TestException hangs when run using PostgreSQL 8.3 database
- [OPENJPA-905] - org.apache.openjpa.persistence.kernel.TestProxies2
- [OPENJPA-906] - org.apache.openjpa.persistence.jpql.expressions.TestEntityTypeExpression
- [OPENJPA-907] - org.apache.openjpa.persistence.jdbc.update.TestParentChild
- [OPENJPA-908] - org.apache.openjpa.persistence.annotations.TestOneToOne
- [OPENJPA-926] - Support explicit access types including @Access annotation and AccessType enum and XML
- [OPENJPA-930] - @AttributeOverride updates
- [OPENJPA-931] - Support derived identity (spec 2.4.1.2 Ex 5(a), 6 (a))
- [OPENJPA-937] - @AssociationOverride updates
- [OPENJPA-957] - Support lock timeout hint on applicable methods
- [OPENJPA-960] - Support unwrap methods on EntityManager and Query interfaces
- [OPENJPA-961] - Support projection of element collection from a JPQL query
- [OPENJPA-963] - Add query timeout tests for PU and Map properties
- [OPENJPA-964] - Finish updating sql-error-state- codes.xml for query timeout support on other DBs
- [OPENJPA-967] - JPA2 Query support for selction of KEY, VALUE, ENTRY of a Map value
- [OPENJPA-972] - Support standard provider properties in PersistenceProvider class
- [OPENJPA-978] - Allow third argument of JPQL SUBSTRING function to be optional
- [OPENJPA-990] - setHint should return IllegalArgumentException for invalid query/lock timeout values
- [OPENJPA-1023] - Message files contain windows EOL characters
- [OPENJPA-1024] - JPA2 Query scalar expression in subquery
- [OPENJPA-1026] - Ensure newlines at end of file
- [OPENJPA-1027] - Document changes for detach methods
- [OPENJPA-1032] - Revert OpenJPAQuery.getPositionalParameters method signature back to 1.x signature
- [OPENJPA-1034] - Removal of OrderColumn attributes per latest spec draft
- [OPENJPA-1035] - JPA2 Query allow map key/value path as argument of scalar functions
- [OPENJPA-1055] - Added MapKeyEnumerated and MapKeyTemporal annotations and XML.
- [OPENJPA-1062] - Include OSGi bundle metadata
- [OPENJPA-1064] - JPA2 Query comparisons over instances of embeddable class are not supported
- [OPENJPA-1068] - Support Bean Validation: Entity validation upon lifecycle events
- [OPENJPA-1069] - OrderBy annotation applied to an element collection of basic type doesn't require property or field name
- [OPENJPA-1077] - Validation-mode element support added to persistence.xml and to createEMF properties Map
- [OPENJPA-1090] - Oracle failures due to the following warning "This database dictionary "Oracle" does not support auto-assigned column values. The column "pid" may not behave as desired."
- [OPENJPA-1094] - JPA2 Query support for KEY appear in subquery
- [OPENJPA-1098] - JPA2 Query support subselect_identification_variable
- [OPENJPA-1102] - Support application/container provided ValidatorFactory
- [OPENJPA-1113] - Reflection class performance improvement
- [OPENJPA-1114] - Bean Validation APIs should be an optional runtime dependency

#### Bug

- [OPENJPA-207] - failure when composite ID has another composite ID as a field
- [OPENJPA-218] - pcNewInstance and ApplicationId
- [OPENJPA-557] - Primary key sequences broken with postgres schemas
- [OPENJPA-580] - Need a better algorithm to find DBDictionary classname in DBDictionaryFactory
- [OPENJPA-732] - Updates to entities via Lifecycle callback methods
- [OPENJPA-751] - Typos in the manual
- [OPENJPA-755] - OpenJPA thows EntityExistsException trying persist a preexisting, detached entity
- [OPENJPA-761] - SchemaTool failed with a NPE in ForeignKey.join
- [OPENJPA-762] - Batch execution fails for Oracle when batch limit set to -1 (unlimited batch size)
- [OPENJPA-764] - Query parsing error with IN expression and String functions such as UPPER()
- [OPENJPA-777] - Exception is thrown during retrieval of an entity which contains a persistent collection of embeddable
- [OPENJPA-787] - slices query.getSingleResult is broken
- [OPENJPA-792] - An entity persist may fail when @MappedSupercalss is specified.
- [OPENJPA-795] - enhancer throws an exception when parsing column name "first.name" because it thinks 'first' is a table name
- [OPENJPA-811] - With Oracle, OpenJPA allows setting non-nullable field to null
- [OPENJPA-815] - Exception is thrown when retrieving an entity which contains an embeddable and the embeddable contains a toMany relation
- [OPENJPA-818] - TCK module should use Geronimo JPA 2.0 EA jar
- [OPENJPA-819] - NPE when no metadata is defined for a persistent class
- [OPENJPA-828] - Externalizer fails with ClassCastException with runtime enhancement
- [OPENJPA-834] - State field mapped to XML column has incorrect value when loaded from database
- [OPENJPA-835] - Loading nested toMany EAGER relation resuled in PersistenceException
- [OPENJPA-836] - after em.clear the datacache is inconsistent
- [OPENJPA-838] - fix parameter setting problem when QuerySQLCache is on
- [OPENJPA-843] - Unnecessary version update on inverse-side of a 1-m relationship
- [OPENJPA-847] - Retrieving database generated keys gets never enabled
- [OPENJPA-853] - Informix cursor not open problem if synchronizeMapping set true
- [OPENJPA-863] - Unexpected mere-cascade behavior when cascade.all/merge specified on both sides of relationships !!!
- [OPENJPA-864] - Subquery problems with SYNTAX_DATABASE (Oracle)
- [OPENJPA-866] - DBDictionary.maxTableNameLength is not checked when using SynchronizeMappings
- [OPENJPA-872] - Compound custom id in bidirectional many-to-one
- [OPENJPA-873] - @MappedSuperClass Cause Null Pointer Exception in Class With IdClass
- [OPENJPA-883] - Documentation is out of date for some MySQLDictionary properties
- [OPENJPA-884] - Logging oversight in DB2Dictionary
- [OPENJPA-886] - Certain query failing after svn:739123
- [OPENJPA-887] - Assertion oversight in TestLibService
- [OPENJPA-896] - Several source files include Windows EoL chars
- [OPENJPA-898] - hints don't work for NamedNativeQuery
- [OPENJPA-912] - Potential NPE in setInverseRelation
- [OPENJPA-913] - A deadlock issue happens when DirtyListener is used
- [OPENJPA-916] - DistributedTemplate is incorrectly setting some attributes on the statements
- [OPENJPA-917] - stored procedures throw InvalidStateException when using getSingleResult() or getResultList()
- [OPENJPA-919] - JUnit for Bi-directional OneToOne with null relationships
- [OPENJPA-925] - Bidirectional OneToOne relation incorrectly set in loadEagerJoin
- [OPENJPA-927] - Fix definition of javax.persistence.query.timeout property
- [OPENJPA-933] - Database version detection in MySQLDictionary is not reliable
- [OPENJPA-947] - Overly verbose TestCases
- [OPENJPA-951] - Javadoc jar file does not contain legal files
- [OPENJPA-954] - openjpa-slice build fails due to tests relying on openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AllowFailure.java
- [OPENJPA-955] - MethodQL parameter passing broken
- [OPENJPA-965] - Open up FinderCacheImpl for non-JDBC or JDBC-like implementation of preparing statement/query execution
- [OPENJPA-970] - SchemaToolTask does not have "dropTables" argument
- [OPENJPA-992] - Failed to throw EntityExistException on duplicated persist in DB2
- [OPENJPA-999] - Missing sql-warning in the localizer.properties
- [OPENJPA-1004] - Derived Identity fails when parent id is auto-generated
- [OPENJPA-1006] - Disabling QueryCaching at runtime does not work
- [OPENJPA-1028] - ClassCastException during findBy when embeddable is involved
- [OPENJPA-1029] - SQLServerDictionary causes NumberFormatException if MS SQL Server JDBC driver is used
- [OPENJPA-1031] - Update docs that refer to OpenJPAEntityManager.getExtent(..)
- [OPENJPA-1041] - OrderBy on nested embeddables is not working
- [OPENJPA-1051] - [patch] Mappingtool doesn't check name conflicts if MappingDefaultsImpl is called with multiple columns.
- [OPENJPA-1053] - Updating an entity by setting an embeddable to it does not work properly if the embeddable has a cascade delete relationship with another entity
- [OPENJPA-1054] - Large result sets do not work with MySQL
- [OPENJPA-1060] - Attempting to returning a list over RMI/IIOP results in serialization exception
- [OPENJPA-1067] - SetQueryTimeout(x) where x != 0 causes SQLException with DB2 on Z/OS
- [OPENJPA-1072] - Nested embeddable with a relationship to an Entity with a generated id doesn't persist the relationship
- [OPENJPA-1088] - Build updates for openjpa-examples and openjpa-integration/examples
- [OPENJPA-1099] - <xmp> tag in Javadoc comments causes Javadoc corruption

#### Improvement

- [OPENJPA-213] - @Column with precision and scale should result in NUMERIC(precision, scale)
- [OPENJPA-736] - Combine insert and select SQL together for generated Id strategy=GenerationType.IDENTITY
- [OPENJPA-742] - Add line number and column number to QueryMetaData
- [OPENJPA-752] - ProxySetupStateManager.setProxyData routing through PersistanceCapable caused "PersistenceException: null"
- [OPENJPA-772] - Proper maven pluginManagement and use ianal-maven-plugin for enforcing legal files
- [OPENJPA-775] - Some Firedird setup tricks
- [OPENJPA-776] - Firebird 2 dictionary which supports sequences
- [OPENJPA-778] - cleaning up build for openjpa-kernel
- [OPENJPA-779] - patch for eclipse .project and .classpath files...
- [OPENJPA-780] - code review for DistributedStoreManager
- [OPENJPA-781] - openjpa-jdbc depends on postgres driver, should be "provided"
- [OPENJPA-783] - openjpa-lib/pom.xml has extraneous code
- [OPENJPA-784] - more pom.xml dependency cleanup
- [OPENJPA-817] - Order of inserts lost when using ConstraintUpdateManager
- [OPENJPA-854] - Testcases should not specify log level
- [OPENJPA-858] - Allow postPersist be invoked immediately after persist()
- [OPENJPA-876] - Better test profiles for proprietary databases (DB2, Oracle) and continuous build
- [OPENJPA-881] - Enable connection pooling for testcases.
- [OPENJPA-882] - Upgrade to latest Geronimo Spec releases
- [OPENJPA-901] - Use hosted JAI artifacts as the default for the docbook build
- [OPENJPA-975] - Oracle needs ability to not have an escape character for search strings.
- [OPENJPA-983] - FirebirdDictionary improvements
- [OPENJPA-988] - Refactor JPA2/MixedLockManager to conform architectual module dependency
- [OPENJPA-1022] - Support distinct LockModeType.READ/OPTIMISTIC & WRITE/OPTIMISTIC_FORCE_INCREMENT
- [OPENJPA-1038] - Enhancer java.lang.StackOverflowError exception when circular dependencies are encountered within embeddables
- [OPENJPA-1045] - Add opt-in and opt-out configuration for L2 DataCache
- [OPENJPA-1063] - Create a new openjpa-all artifact to include runtime depends

#### New Feature

- [OPENJPA-723] - Feature request for PostgreSQL XML Column Mapping
- [OPENJPA-800] - OpenJPA 2.0 iteration 1 primary task
- [OPENJPA-807] - OpenJPA 2.0 iteration 2 primary task
- [OPENJPA-808] - OpenJPA 2.0 iteration 3 primary task
- [OPENJPA-831] - OpenJPA 2.0 iteration 1.5 (holiday) primary task
- [OPENJPA-846] - XML column support for MySQL
- [OPENJPA-875] - OpenJPA 2.0 iteration 4 primary task
- [OPENJPA-956] - OpenJPA 2.0 iteration 5 primary task
- [OPENJPA-966] - Support Replication-enabled MySQL
- [OPENJPA-1007] - OpenJPA 2.0 iteration 6 primary task
- [OPENJPA-1052] - OpenJPA 2.0 iteration 7 primary task

#### Test

- [OPENJPA-247] - new-delete-new-find doesn't work
- [OPENJPA-833] - An improved test case for XML column mapping
- [OPENJPA-1015] - Enforce 80-column line width for source code
- [OPENJPA-1071] - Derby test suit speed-up
- [OPENJPA-1073] - Upgrade to latest maven-surefire-plugin
- [OPENJPA-1092] - enable test case for jpql

#### Wish

- [OPENJPA-79] - Please add Eclipse artifacts to svn ignore

### OpenJPA 2.0.0 Milestone 1 Release

#### Sub-task

- [OPENJPA-765] - Check for insertable or updateable before checking value for null
- [OPENJPA-857] - Detect and store JPA version
- [OPENJPA-899] - Add support for JPA2.0 method Query.getHints()
- [OPENJPA-900] - Add support for JPA2.0 method Query.getSupportedHints()
- [OPENJPA-958] - Support lock mode on Named Query

#### Bug

- [OPENJPA-828] - Externalizer fails with ClassCastException with runtime enhancement
- [OPENJPA-886] - Certain query failing after svn:739123
- [OPENJPA-955] - MethodQL parameter passing broken
- [OPENJPA-1039] - Dynamic query predicates must not treat AND OR operators as associative

#### Improvement

- [OPENJPA-858] - Allow postPersist be invoked immediately after persist()

#### New Feature

- [OPENJPA-800] - OpenJPA 2.0 iteration 1 primary task
- [OPENJPA-807] - OpenJPA 2.0 iteration 2 primary task
- [OPENJPA-831] - OpenJPA 2.0 iteration 1.5 (holiday) primary task
- [OPENJPA-966] - Support Replication-enabled MySQL

#### Task

- [OPENJPA-995] - Migrate existing Criteria Query implementation as OpenJPA extension to prepare for upcoming JPA 2.0 spec changes

## Previous Releases

Release notes for earlier releases of OpenJPA may be found in SVN at the following locations.

- OpenJPA 1.2.1 RELEASE-NOTES.html
- OpenJPA 1.1.0 RELEASE-NOTES.html
- OpenJPA 1.0.3 RELEASE-NOTES.html

Copyright (C) 2006-2009 Apache Software Foundation. Licensed under Apache License 2.0.
Apache and the Apache feather logo are trademarks of Apache Software Foundation.