EclipseLink/Development/DatabasePlatform/HANAPlatform

From Eclipsepedia

Jump to: navigation, search

Contents

Description

This is a subclass of DatabasePlatform that can be used by customers using the SAP HANA database.

Documentation

Detailed information on SAP HANA Appliance Software (which comprises SAP HANA Database) are found here:

http://help.sap.com/hana_appliance/

The HANA platform is configured in the persistence.xml by the following property:

<property name="eclipselink.target-database" value="HANA"/>


Limitations of the Platform

  • Reserved SQL keywords cannot be used as table, column or sequence names. Use a different name, or enclose the name in double quotes. For example: @Column(name="\"LANGUAGE\"")
  • Pessimistic locking adds 'FOR UPDATE' to the SELECT statement, and cannot be used with queries that use DISTINCT.
  • Pessimistic locking cannot be used with queries that select from multiple tables - see bug 384129
  • The LockNoWait option of Pessimistic Locking cannot be used; it is ignored when specified (i.e. only 'FOR UPDATE' is added to the SELECT statement).
  • Bulk update and delete operations that require multiple tables to be accessed cannot be used (e.g. bulk operation on an entity that is part of an inheritance hierarchy, UpdateAll and DeleteAll queries).
  • '= NULL' and '<> NULL' cannot be used for null comparisons in the WHERE clause. Use 'IS (NOT) NULL' instead.
  • Scrollable cursors are not supported - see bug 384116.
  • Query timeouts are not supported - see bug 384135.

Location

The HANA platform class org.eclipse.persistence.platform.database.HANAPlatform is contained in the main eclipselink.jar file and the org.eclipse.persistence.core bundle starting with EclipseLink release 2.5.0.

Git repository: http://git.eclipse.org/gitroot/eclipselink/eclipselink.runtime.git

Web access directly to the HANAPlatform: http://git.eclipse.org/c/eclipselink/eclipselink.runtime.git/tree/foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/platform/database/HANAPlatform.java

Level of Testing

2.6.0 - 31. March 2014

  • EclipseLink master (2.6.0 - commit 11a548fe3919f0e6789c86)
  • DB: SAP HANA 1.00.72.00.388670
  • JDBC Driver: SAP In-Memory Database JDBC Driver 1.00.73.00 Build 0389834-1410


Test Name Tests Failures/Errors
Core SRG 696 0
Core LRG 8017 2 (*)
JPA SRG 252 0
JPA LRG 3162 0
JPA WDF 852 0

(*) Bugs reported

Details on Errors/Failures

Core LRG
Test Name Bug Description/Reason
ExpressionPersistenceSpecialTypesTest:PersistenceTestEqualTime bug 431885 Exception Description: Persisted query not the same as original
org.eclipse.persistence.testing.tests.feature.CacheStatementBatchWritingTest.CacheStatementBatchWritingTest n/a HANA bug: PreparedStatement.close() doesn't work correctly

Issue reported as HANA JDBC driver bug 516888 2013

2.5.0 - 4. March 2013

  • EclipseLink master (commit 5639bcff74702d30ec7fa01a0bdd73a99446fc61)
  • DB: SAP HANA 1.00.31.362930
  • JDBC Driver: SAP In-Memory Database JDBC Driver 1.00.31 Build 0362930-1510
Test Name Tests Failures/Errors
Core SRG 693 0
Core LRG 8001 1 (*)
JPA SRG 244 0
JPA LRG 2902 0
JPA WDF 852 0
Server LRG (GlassFish v3) 2384 2 (**)

(*) Reported as HANA JDBC Driver Bug

(**) Fails on GlassFish v3 server independent of database platform

Details on Errors/Failures

Core LRG
Test Name Bug Description/Reason
org.eclipse.persistence.testing.tests.feature.CacheStatementBatchWritingTest.CacheStatementBatchWritingTest n/a HANA bug: PreparedStatement.close() doesn't work correctly

Issue reported as HANA JDBC driver bug 516888 2013

Server LRG
Test Name Bug Description/Reason
org.eclipse.persistence.testing.tests.jpa.advanced.multitenant.AdvancedMultiTenantServerTestSuite.testTablePerTenantAQueries bug 401164 NamedQuery of name: Supporter.findAll not found

Fails in glassfish (DB platform independent)

org.eclipse.persistence.testing.tests.jpa.advanced.multitenant.AdvancedMultiTenantServerTestSuite.testTablePerTenantBQueries bug 401164 NamedQuery of name: Supporter.findAll not found

Fails in glassfish (DB platform independent)

Location of tests and examples

No specific tests or examples have been written