A new build of Versant JPA SDK is available for download: http://community.versant.com/JPA.aspx
The new version 1.0.3.1467 of the SDK is suited to work with Versant JPA Server 1.0.2.1383. The next release is scheduled for February 13.
Release notes for SDK v1.0.3.1467:
Please note:
In order to use the V/JPA 2nd Level Cache, please re-enhance your Entities.
New features/improvements:
- #326: Support for Cacheable annotation and SharedCacheMode properties
- #2163: Distributed 2nd Level Cache with ehcache
Fixed:
- #1824: Under some rare circumstances online schema modifications are not
propagated to the user transaction
- #1909: VersantEntityManagerImpl#lock() should throw EntityNotFoundException
if entity could not be found in the database [limitation documented]
- #2027: Better exception in case of wrong usage of merge that results in
duplicate LOIDs
Known Issues:
- #1151: queries using an IN expression on indexed strings are currently not
supported
- #1153: querying for empty strings in an IN expression is currently not
supported; example:
"select obj from myEntity obj where obj.member in ('Foo', '')"
- #1154: multiple projections of the same entity class and/or its Id
attribute are currently not supported; examples:
"select obj, obj from myEntity obj",
"select obj, obj.loid from myEntity obj"
- #1310: Versant JPA allows mixing PROPERTY and FIELD access types in
Entities. However, keep the warning from the JPA 2.0 Specification
in mind:
"Note that when access types are combined within a class, the
Transient annotation should be used to avoid duplicate persistent
mappings."
Duplicates are not automatically detected and prohibited.
Here is an example how you should not mix:
@Access(AccessType.PROPERTY)
@Entity
public class EntityItemWithDuplicateAttribute {
...
transient public int backingValue;
public int getValue() { return backingValue; }
public void setValue(int v) { this.backingValue = v; }
@Access(AccessType.FIELD)
public int value;
...
}
Adding a @Transient annotation to getValue() or renaming the
getter/setter methods of the Property would solve this conflict.
- #1315: when adding a new field to a class and in the same transaction the
new field is added to an existing index, the old index might not be
deleted
- #1529: query for null string members is currently not supported
- #1530: query for empty string members will also match null
- #1532: queries for Infinity and NegativeInfinity values are currently not
supported
- #1787: objects larger than 127 MB are currently not supported
- #1815: the space character in database connection user names is currently
not supported
- #1934: In expression with input param over indexed string attributes yields
empty/wrong result
- #2186: Clients using the Generic API might continue to run even if the
database is removed, resulting in arbitrary exceptions.
- #2189: Adding or removing attributes from an existing index might result
in unusable index. As a workaround, please remove the index in one
transaction (or use dbtool) and recreate it in a second transaction
- #2191: Some exceptions do not provide a detailed message
Loading, please waiting...