You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2014/09/02 13:49:41 UTC
[21/50] [abbrv] git commit: [OLINGO - 127] - Support for handling JPA
annotation JoinColumn without "name" and "referencedColumnName" attributes.
[OLINGO - 127]
- Support for handling JPA annotation JoinColumn without "name" and
"referencedColumnName" attributes.
- Support for handling JPA annotation JoinColumns.
- Fix for naming convention for Foreign key properties.
- Adapt Reference scenario to show case the above new features
Signed-off-by: Chandan V A <ch...@sap.com>
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/13093430
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/13093430
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/13093430
Branch: refs/heads/Olingo-129_PocJpaDataStore
Commit: 130934309353f4a7d46eb782490c1256b9286b68
Parents: afa3a45
Author: Chandan V A <ch...@sap.com>
Authored: Sat Jun 28 17:48:17 2014 +0530
Committer: Chandan V A <ch...@sap.com>
Committed: Sat Jun 28 17:48:17 2014 +0530
----------------------------------------------------------------------
.../api/model/JPAEdmAssociationEndView.java | 4 +-
.../processor/api/model/JPAEdmPropertyView.java | 6 +-
.../core/access/data/JPAEntityParser.java | 10 ++++
.../core/access/model/JPAEdmNameBuilder.java | 10 ++--
.../core/access/model/JPATypeConvertor.java | 2 +-
.../processor/core/model/JPAEdmAssociation.java | 13 ++--
.../core/model/JPAEdmAssociationEnd.java | 33 +++++-----
.../processor/core/model/JPAEdmProperty.java | 63 ++++++++++++++------
.../model/JPAEdmReferentialConstraintRole.java | 24 +++-----
.../core/model/JPAEdmAssociationTest.java | 23 +++++--
.../JPAEdmReferentialConstraintRoleTest.java | 20 +++----
.../model/JPAEdmReferentialConstraintTest.java | 18 +++---
.../core/model/JPAEdmTestModelView.java | 7 +--
.../ref/converter/BlobToByteConverter.java | 6 ++
.../jpa/processor/ref/model/Category.java | 12 ++++
.../jpa/processor/ref/model/Material.java | 9 +--
.../processor/ref/model/SalesOrderHeader.java | 2 +-
.../jpa/processor/ref/model/SalesOrderItem.java | 2 +-
.../ref/web/JPAReferenceServiceFactory.java | 1 +
.../resources/SQL_Insert_Category.properties | 8 +--
.../resources/SQL_Insert_Material.properties | 22 +++----
.../SQL_Insert_SalesOrderHeader.properties | 22 +++----
22 files changed, 183 insertions(+), 134 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmAssociationEndView.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmAssociationEndView.java b/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmAssociationEndView.java
index 2d1262e..44ef3b2 100644
--- a/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmAssociationEndView.java
+++ b/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmAssociationEndView.java
@@ -80,9 +80,9 @@ public interface JPAEdmAssociationEndView extends JPAEdmBaseView {
*/
boolean compare(AssociationEnd end1, AssociationEnd end2);
- String getJoinColumnName();
+ String[] getJoinColumnNames();
- String getJoinColumnReferenceColumnName();
+ String[] getJoinColumnReferenceColumnNames();
String getMappedByName();
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmPropertyView.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmPropertyView.java b/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmPropertyView.java
index 419d622..3ce66d6 100644
--- a/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmPropertyView.java
+++ b/odata2-jpa-processor/jpa-api/src/main/java/org/apache/olingo/odata2/jpa/processor/api/model/JPAEdmPropertyView.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata2.jpa.processor.api.model;
import java.util.List;
-import javax.persistence.JoinColumn;
import javax.persistence.metamodel.Attribute;
import org.apache.olingo.odata2.api.edm.provider.Property;
@@ -115,7 +114,8 @@ public interface JPAEdmPropertyView extends JPAEdmBaseView {
/**
* The method returns a list of JPA Join Column Annotations for the given JPA Attribute
* @return
- * an instance of type {@link javax.persistence.JoinColumn}
+ * a list of Array of Strings. First element in the Array represents the join column name and the second element in
+ * the array represents the referencedColumn name
*/
- List<JoinColumn> getJPAJoinColumns();
+ List<String[]> getJPAJoinColumns();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAEntityParser.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAEntityParser.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAEntityParser.java
index 1314ed2..9543bfe 100644
--- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAEntityParser.java
+++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAEntityParser.java
@@ -260,6 +260,11 @@ public final class JPAEntityParser {
public static String getString(final Clob clob) throws ODataJPARuntimeException {
try {
+
+ if (clob == null) {
+ return null;
+ }
+
Reader stringReader = clob.getCharacterStream();
StringWriter buffer = null;
long clobSize = clob.length();
@@ -307,8 +312,13 @@ public final class JPAEntityParser {
public static byte[] getBytes(final Blob blob) throws ODataJPARuntimeException {
try {
+
+ if (blob == null) {
+ return null;
+ }
InputStream is = null;
ByteArrayOutputStream buffer = null;
+
long blobSize = blob.length();
long remainingBlobSize = blobSize;
int len = 0;
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilder.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilder.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilder.java
index 1f0e152..75878e6 100644
--- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilder.java
+++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilder.java
@@ -22,7 +22,6 @@ import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Field;
import javax.persistence.Column;
-import javax.persistence.JoinColumn;
import javax.persistence.metamodel.Attribute;
import javax.persistence.metamodel.ManagedType;
import javax.persistence.metamodel.PluralAttribute;
@@ -129,6 +128,7 @@ public class JPAEdmNameBuilder {
Attribute<?, ?> jpaAttribute = view.getJPAAttribute();
String jpaAttributeName = jpaAttribute.getName();
String propertyName = null;
+ String[] joinColumnNames = null;
JPAEdmMappingModelAccess mappingModelAccess = view.getJPAEdmMappingModelAccess();
if (mappingModelAccess != null && mappingModelAccess.isMappingModelExists()) {
@@ -147,7 +147,8 @@ public class JPAEdmNameBuilder {
} else if (propertyName == null) {
propertyName = jpaAttributeName;
if (isForeignKey == true) {
- propertyName = FK_PREFIX + UNDERSCORE + propertyName;
+ joinColumnNames = view.getJPAJoinColumns().get(view.getJPAJoinColumns().size() - 1);
+ propertyName = FK_PREFIX + UNDERSCORE + joinColumnNames[0];
}
}
@@ -162,9 +163,8 @@ public class JPAEdmNameBuilder {
if (column != null) {
mapping.setJPAColumnName(column.name());
} else {
- JoinColumn joinColumn = annotatedElement.getAnnotation(JoinColumn.class);
- if (joinColumn != null) {
- mapping.setJPAColumnName(joinColumn.name());
+ if (joinColumnNames != null) {
+ mapping.setJPAColumnName(joinColumnNames[0]);
jpaAttributeName += "." + view.getJPAReferencedAttribute().getName();
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPATypeConvertor.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPATypeConvertor.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPATypeConvertor.java
index 685ee83..063b297 100644
--- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPATypeConvertor.java
+++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPATypeConvertor.java
@@ -23,7 +23,7 @@ import java.math.BigDecimal;
import java.sql.Blob;
import java.sql.Clob;
import java.util.Calendar;
-import java.util.Date;
+import java.sql.Date;
import java.util.UUID;
import javax.persistence.Lob;
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociation.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociation.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociation.java
index 537a4f8..9f35c3a 100644
--- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociation.java
+++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociation.java
@@ -19,6 +19,7 @@
package org.apache.olingo.odata2.jpa.processor.core.model;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
@@ -94,11 +95,13 @@ public class JPAEdmAssociation extends JPAEdmBaseViewImpl implements JPAEdmAssoc
if (association != null) {
if (view.compare(association.getEnd1(), association.getEnd2())) {
JPAEdmAssociationEndView associationEnd = associationEndMap.get(association.getName());
- if (associationEnd.getJoinColumnName() != null && associationEnd.getJoinColumnReferenceColumnName() != null
- && view.getJoinColumnName() != null && view.getJoinColumnReferenceColumnName() != null) {
- if (view.getJoinColumnName().equals(associationEnd.getJoinColumnName())
- && view.getJoinColumnReferenceColumnName()
- .equals(associationEnd.getJoinColumnReferenceColumnName())) {
+ if (associationEnd.getJoinColumnNames() != null
+ && associationEnd.getJoinColumnReferenceColumnNames() != null
+ && view.getJoinColumnNames() != null && view.getJoinColumnReferenceColumnNames() != null) {
+ if (Arrays.equals(view.getJoinColumnNames(), associationEnd.getJoinColumnNames())
+ &&
+ Arrays.equals(view.getJoinColumnReferenceColumnNames(), associationEnd
+ .getJoinColumnReferenceColumnNames())) {
currentAssociation = association;
return association;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociationEnd.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociationEnd.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociationEnd.java
index 0fdaee0..d3af0e9 100644
--- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociationEnd.java
+++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociationEnd.java
@@ -19,8 +19,9 @@
package org.apache.olingo.odata2.jpa.processor.core.model;
import java.lang.reflect.AnnotatedElement;
+import java.lang.reflect.Array;
+import java.util.List;
-import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
@@ -41,8 +42,8 @@ public class JPAEdmAssociationEnd extends JPAEdmBaseViewImpl implements JPAEdmAs
private JPAEdmPropertyView propertyView = null;
private AssociationEnd currentAssociationEnd1 = null;
private AssociationEnd currentAssociationEnd2 = null;
- private String columnName;
- private String referencedColumnName;
+ private String[] columnNames;
+ private String[] referencedColumnNames;
private String mappedBy;
private String ownerPropertyName;
@@ -76,8 +77,6 @@ public class JPAEdmAssociationEnd extends JPAEdmBaseViewImpl implements JPAEdmAs
@Override
public void build() throws ODataJPAModelException {
- JoinColumn joinColumn = null;
-
currentAssociationEnd1 = new AssociationEnd();
currentAssociationEnd2 = new AssociationEnd();
@@ -88,17 +87,17 @@ public class JPAEdmAssociationEnd extends JPAEdmBaseViewImpl implements JPAEdmAs
setEdmMultiplicity(propertyView.getJPAAttribute().getPersistentAttributeType());
- AnnotatedElement annotatedElement = (AnnotatedElement) propertyView.getJPAAttribute().getJavaMember();
- if (annotatedElement != null) {
- joinColumn = annotatedElement.getAnnotation(JoinColumn.class);
- if (joinColumn != null) {
- columnName = joinColumn.name();
- referencedColumnName = joinColumn.referencedColumnName();
+ List<String[]> joinColumnNames = propertyView.getJPAJoinColumns();
+ if (joinColumnNames != null) {
+ int i = 0;
+ columnNames = (String[]) Array.newInstance(String.class, joinColumnNames.size());
+ referencedColumnNames = (String[]) Array.newInstance(String.class, joinColumnNames.size());
+ for (String[] jc : joinColumnNames) {
+ columnNames[i] = jc[0];
+ referencedColumnNames[i++] = jc[1];
}
-
}
ownerPropertyName = propertyView.getJPAAttribute().getName();
-
}
private void setEdmMultiplicity(final PersistentAttributeType type) {
@@ -161,13 +160,13 @@ public class JPAEdmAssociationEnd extends JPAEdmBaseViewImpl implements JPAEdmAs
}
@Override
- public String getJoinColumnName() {
- return columnName;
+ public String[] getJoinColumnNames() {
+ return columnNames;
}
@Override
- public String getJoinColumnReferenceColumnName() {
- return referencedColumnName;
+ public String[] getJoinColumnReferenceColumnNames() {
+ return referencedColumnNames;
}
@Override
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmProperty.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmProperty.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmProperty.java
index 0726626..dbae270 100644
--- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmProperty.java
+++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmProperty.java
@@ -74,7 +74,7 @@ public class JPAEdmProperty extends JPAEdmBaseViewImpl implements
private Attribute<?, ?> currentRefAttribute;
private boolean isBuildModeComplexType;
private Map<String, Integer> associationCount;
- private ArrayList<JoinColumn> bJoinColumns = null;
+ private ArrayList<String[]> joinColumnNames = null;
public JPAEdmProperty(final JPAEdmSchemaView view) {
super(view);
@@ -140,8 +140,8 @@ public class JPAEdmProperty extends JPAEdmBaseViewImpl implements
}
@Override
- public List<JoinColumn> getJPAJoinColumns() {
- return bJoinColumns;
+ public List<String[]> getJPAJoinColumns() {
+ return joinColumnNames;
}
private class JPAEdmPropertyBuilder implements JPAEdmBuilder {
@@ -348,7 +348,7 @@ public class JPAEdmProperty extends JPAEdmBaseViewImpl implements
ODataJPARuntimeException {
AnnotatedElement annotatedElement = (AnnotatedElement) jpaAttribute.getJavaMember();
- bJoinColumns = null;
+ joinColumnNames = null;
if (annotatedElement == null) {
return;
}
@@ -356,27 +356,52 @@ public class JPAEdmProperty extends JPAEdmBaseViewImpl implements
if (joinColumn == null) {
JoinColumns joinColumns = annotatedElement.getAnnotation(JoinColumns.class);
if (joinColumns != null) {
- return;
+ for (JoinColumn jc : joinColumns.value()) {
+ buildForeignKey(jc, jpaAttribute);
+ }
}
} else {
- bJoinColumns = bJoinColumns == null ? new ArrayList<JoinColumn>() : bJoinColumns;
- bJoinColumns.add(joinColumn);
- if (joinColumn.insertable() && joinColumn.updatable()) {
- EntityType<?> referencedEntityType = metaModel.entity(jpaAttribute.getJavaType());
- for (Attribute<?, ?> referencedAttribute : referencedEntityType.getAttributes()) {
- AnnotatedElement annotatedElement2 = (AnnotatedElement) referencedAttribute.getJavaMember();
- if (annotatedElement2 != null) {
- Column referencedColumn = annotatedElement2.getAnnotation(Column.class);
- if (referencedColumn != null && referencedColumn.name().equals((joinColumn.referencedColumnName()))) {
- currentRefAttribute = referencedAttribute;
- currentSimpleProperty = new SimpleProperty();
- properties.add(buildSimpleProperty(currentRefAttribute, currentSimpleProperty, true));
- break;
- }
+ buildForeignKey(joinColumn, jpaAttribute);
+ }
+ }
+
+ private void buildForeignKey(JoinColumn joinColumn, Attribute<?, ?> jpaAttribute) throws ODataJPAModelException,
+ ODataJPARuntimeException {
+ joinColumnNames = joinColumnNames == null ? new ArrayList<String[]>() : joinColumnNames;
+ String[] name = { null, null };
+ name[0] = joinColumn.name().equals("") == true ? jpaAttribute.getName() : joinColumn.name();
+
+ EntityType<?> referencedEntityType = metaModel.entity(jpaAttribute.getJavaType());
+ if (joinColumn.referencedColumnName().equals("")) {
+ for (Attribute<?, ?> referencedAttribute : referencedEntityType.getAttributes()) {
+ if (referencedAttribute.getPersistentAttributeType() == PersistentAttributeType.BASIC &&
+ ((SingularAttribute<?, ?>) referencedAttribute).isId()) {
+ name[1] = referencedAttribute.getName();
+ joinColumnNames.add(name);
+ currentRefAttribute = referencedAttribute;
+ break;
+ }
+ }
+ } else {
+ for (Attribute<?, ?> referencedAttribute : referencedEntityType.getAttributes()) {
+ AnnotatedElement annotatedElement2 = (AnnotatedElement) referencedAttribute.getJavaMember();
+ if (annotatedElement2 != null) {
+ Column referencedColumn = annotatedElement2.getAnnotation(Column.class);
+ if (referencedColumn != null && referencedColumn.name().equals((joinColumn.referencedColumnName()))) {
+ name[1] = referencedColumn.name();
+ joinColumnNames.add(name);
+ currentRefAttribute = referencedAttribute;
+ break;
}
}
}
}
+
+ if (joinColumn.insertable() && joinColumn.updatable()) {
+ currentSimpleProperty = new SimpleProperty();
+ properties.add(buildSimpleProperty(currentRefAttribute, currentSimpleProperty, true));
+ }
+
}
@SuppressWarnings("rawtypes")
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintRole.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintRole.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintRole.java
index b36398a..94905e9 100644
--- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintRole.java
+++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintRole.java
@@ -23,7 +23,6 @@ import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
-import javax.persistence.JoinColumn;
import javax.persistence.metamodel.Attribute;
import org.apache.olingo.odata2.api.edm.provider.Association;
@@ -48,9 +47,8 @@ public class JPAEdmReferentialConstraintRole extends JPAEdmBaseViewImpl implemen
private JPAEdmReferentialConstraintRoleView.RoleType roleType;
private Attribute<?, ?> jpaAttribute;
- private ArrayList<String> jpaColumnNames;
+ private List<String[]> jpaColumnNames;
private Association association;
- private List<JoinColumn> bufferedJoinColumns = null;
private boolean roleExists = false;
@@ -66,7 +64,7 @@ public class JPAEdmReferentialConstraintRole extends JPAEdmBaseViewImpl implemen
this.roleType = roleType;
jpaAttribute = propertyView.getJPAAttribute();
- bufferedJoinColumns = propertyView.getJPAJoinColumns();
+ jpaColumnNames = propertyView.getJPAJoinColumns();
association = associationView.getEdmAssociation();
}
@@ -133,21 +131,12 @@ public class JPAEdmReferentialConstraintRole extends JPAEdmBaseViewImpl implemen
firstBuild = false;
isConsistent = false;
- if (bufferedJoinColumns == null || bufferedJoinColumns.isEmpty()) {
+ if (jpaColumnNames == null || jpaColumnNames.isEmpty()) {
roleExists = false;
return;
} else {
roleExists = true;
}
- jpaColumnNames = new ArrayList<String>();
-
- for (JoinColumn joinColumn : bufferedJoinColumns) {
- if (roleType == RoleType.PRINCIPAL) {
- jpaColumnNames.add(joinColumn.referencedColumnName());
- } else if (roleType == RoleType.DEPENDENT) {
- jpaColumnNames.add(joinColumn.name());
- }
- }
}
private void buildRole() throws SecurityException, NoSuchFieldException {
@@ -174,9 +163,12 @@ public class JPAEdmReferentialConstraintRole extends JPAEdmBaseViewImpl implemen
List<PropertyRef> propertyRefs = new ArrayList<PropertyRef>();
if (edmEntityType != null) {
- for (String columnName : jpaColumnNames) {
+ for (String[] columnName : jpaColumnNames) {
for (Property property : edmEntityType.getProperties()) {
- if (columnName.equals(((JPAEdmMapping) property.getMapping()).getJPAColumnName())) {
+ if (columnName[0].equals(((JPAEdmMapping) property.getMapping()).getJPAColumnName()) ||
+ columnName[0].equals(property.getName()) ||
+ columnName[1].equals(((JPAEdmMapping) property.getMapping()).getJPAColumnName()) ||
+ columnName[1].equals(property.getName())) {
PropertyRef propertyRef = new PropertyRef();
propertyRef.setName(property.getName());
propertyRefs.add(propertyRef);
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociationTest.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociationTest.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociationTest.java
index 186a864..eea4433 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociationTest.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmAssociationTest.java
@@ -28,7 +28,9 @@ import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Field;
import java.lang.reflect.Member;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.persistence.JoinColumn;
@@ -59,6 +61,7 @@ public class JPAEdmAssociationTest extends JPAEdmTestModelView {
private JPAEdmAssociationTest localView = null;
private static final String PUNIT_NAME = "salesorderprocessing";
private int variant;
+ private List<String[]> joinColumnNames = null;
@Before
public void setup() {
@@ -183,6 +186,18 @@ public class JPAEdmAssociationTest extends JPAEdmTestModelView {
@Test
public void testSearchAssociation1() {
class TestAssociationEndView extends JPAEdmTestModelView {
+
+ @Override
+ public List<String[]> getJPAJoinColumns() {
+ if (joinColumnNames == null) {
+
+ joinColumnNames = new ArrayList<String[]>();
+ String[] names = { "SOID", "DEMO_ID" };
+ joinColumnNames.add(names);
+ }
+ return joinColumnNames;
+ }
+
@Override
public String getEdmRelationShipName() {
return "SalesOrderHeader_String1";
@@ -199,13 +214,13 @@ public class JPAEdmAssociationTest extends JPAEdmTestModelView {
}
@Override
- public String getJoinColumnName() {
- return "SO_ID";
+ public String[] getJoinColumnNames() {
+ return new String[] { "SO_ID" };
}
@Override
- public String getJoinColumnReferenceColumnName() {
- return "DEMO_ID";
+ public String[] getJoinColumnReferenceColumnNames() {
+ return new String[] { "DEMO_ID" };
}
@Override
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintRoleTest.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintRoleTest.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintRoleTest.java
index cee6ead..656af8d 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintRoleTest.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintRoleTest.java
@@ -55,7 +55,7 @@ public class JPAEdmReferentialConstraintRoleTest extends JPAEdmTestModelView {
private static JPAEdmReferentialConstraintRole objJPAEdmReferentialConstraintRole = null;
private static JPAEdmReferentialConstraintRoleTest objJPAEdmReferentialConstraintRoleTest = null;
- private List<JoinColumn> bufferedJoinColumns = null;
+ private List<String[]> joinColumnNames = null;
@Before
public void setUp() {
@@ -148,18 +148,14 @@ public class JPAEdmReferentialConstraintRoleTest extends JPAEdmTestModelView {
}
@Override
- public List<JoinColumn> getJPAJoinColumns() {
- if (bufferedJoinColumns == null) {
- JoinColumn joinColumn = EasyMock.createMock(JoinColumn.class);
- EasyMock.expect(joinColumn.referencedColumnName()).andReturn("SOID");
- EasyMock.expect(joinColumn.name()).andReturn("SOID");
-
- EasyMock.replay(joinColumn);
+ public List<String[]> getJPAJoinColumns() {
+ if (joinColumnNames == null) {
- bufferedJoinColumns = new ArrayList<JoinColumn>();
- bufferedJoinColumns.add(joinColumn);
+ joinColumnNames = new ArrayList<String[]>();
+ String[] names = { "SOID", "SOID" };
+ joinColumnNames.add(names);
}
- return bufferedJoinColumns;
+ return joinColumnNames;
}
@Override
@@ -244,8 +240,6 @@ public class JPAEdmReferentialConstraintRoleTest extends JPAEdmTestModelView {
EasyMock.replay(joinColumn);
- bufferedJoinColumns = new ArrayList<JoinColumn>();
- bufferedJoinColumns.add(joinColumn);
return (T) joinColumn;
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintTest.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintTest.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintTest.java
index 86181b7..1e26654 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintTest.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmReferentialConstraintTest.java
@@ -50,7 +50,7 @@ public class JPAEdmReferentialConstraintTest extends JPAEdmTestModelView {
private static JPAEdmReferentialConstraint objJPAEdmReferentialConstraint = null;
private static JPAEdmReferentialConstraintTest objJPAEdmReferentialConstraintTest = null;
- private List<JoinColumn> bufferedJoinColumns = null;
+ private List<String[]> joinColumnNames = null;
@Before
public void setUp() {
@@ -129,18 +129,14 @@ public class JPAEdmReferentialConstraintTest extends JPAEdmTestModelView {
}
@Override
- public List<JoinColumn> getJPAJoinColumns() {
- if (bufferedJoinColumns == null) {
- JoinColumn joinColumn = EasyMock.createMock(JoinColumn.class);
- EasyMock.expect(joinColumn.referencedColumnName()).andReturn("SOID");
- EasyMock.expect(joinColumn.name()).andReturn("SOID");
-
- EasyMock.replay(joinColumn);
+ public List<String[]> getJPAJoinColumns() {
+ if (joinColumnNames == null) {
- bufferedJoinColumns = new ArrayList<JoinColumn>();
- bufferedJoinColumns.add(joinColumn);
+ joinColumnNames = new ArrayList<String[]>();
+ String[] names = { "SOID", "SOID" };
+ joinColumnNames.add(names);
}
- return bufferedJoinColumns;
+ return joinColumnNames;
}
@SuppressWarnings("hiding")
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmTestModelView.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmTestModelView.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmTestModelView.java
index 639ad52..df20a50 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmTestModelView.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmTestModelView.java
@@ -21,7 +21,6 @@ package org.apache.olingo.odata2.jpa.processor.core.model;
import java.util.HashMap;
import java.util.List;
-import javax.persistence.JoinColumn;
import javax.persistence.metamodel.Attribute;
import javax.persistence.metamodel.EmbeddableType;
import javax.persistence.metamodel.Metamodel;
@@ -357,13 +356,13 @@ public class JPAEdmTestModelView implements JPAEdmAssociationEndView, JPAEdmAsso
}
@Override
- public String getJoinColumnName() {
+ public String[] getJoinColumnNames() {
// TODO Auto-generated method stub
return null;
}
@Override
- public String getJoinColumnReferenceColumnName() {
+ public String[] getJoinColumnReferenceColumnNames() {
// TODO Auto-generated method stub
return null;
}
@@ -405,7 +404,7 @@ public class JPAEdmTestModelView implements JPAEdmAssociationEndView, JPAEdmAsso
}
@Override
- public List<JoinColumn> getJPAJoinColumns() {
+ public List<String[]> getJPAJoinColumns() {
// TODO Auto-generated method stub
return null;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/converter/BlobToByteConverter.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/converter/BlobToByteConverter.java b/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/converter/BlobToByteConverter.java
index b6b01cf..e950d69 100644
--- a/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/converter/BlobToByteConverter.java
+++ b/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/converter/BlobToByteConverter.java
@@ -34,6 +34,9 @@ public class BlobToByteConverter implements AttributeConverter<Blob, byte[]> {
@Override
public byte[] convertToDatabaseColumn(final Blob arg0) {
+ if (arg0 == null) {
+ return null;
+ }
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
InputStream is;
try {
@@ -55,6 +58,9 @@ public class BlobToByteConverter implements AttributeConverter<Blob, byte[]> {
@Override
public Blob convertToEntityAttribute(final byte[] arg0) {
try {
+ if (arg0 == null) {
+ return null;
+ }
return new JDBCBlob(arg0);
} catch (SQLException e) {
e.printStackTrace();
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/Category.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/Category.java b/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/Category.java
index 22e2966..f0ff23f 100644
--- a/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/Category.java
+++ b/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/Category.java
@@ -35,6 +35,10 @@ public class Category {
@Column(name = "CODE")
private char code[] = new char[2];
+ @Id
+ @Column(name = "ID")
+ private long id;
+
@Column(name = "DESC")
private String description;
@@ -49,6 +53,14 @@ public class Category {
this.materials = materials;
}
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
public char[] getCode() {
return code;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/Material.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/Material.java b/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/Material.java
index 356909f..8a2ef0c 100644
--- a/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/Material.java
+++ b/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/Material.java
@@ -28,18 +28,14 @@ import javax.persistence.Convert;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
import javax.persistence.Lob;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
-import org.eclipse.persistence.annotations.Converter;
-
@Entity
@Table(name = "T_MATERIAL")
-@Converter(
- name = "BlobToByteConverter",
- converterClass = org.apache.olingo.odata2.jpa.processor.ref.converter.BlobToByteConverter.class)
public class Material {
public Material() {}
@@ -82,7 +78,8 @@ public class Material {
private List<Store> stores = new ArrayList<Store>();
@ManyToOne
- @JoinColumn(name = "TYPE_CODE", referencedColumnName = "CODE")
+ @JoinColumns({ @JoinColumn(name = "TYPE_CODE", referencedColumnName = "CODE"),
+ @JoinColumn(name = "CAT_ID", referencedColumnName = "ID") })
private Category category;
public long getMaterialId() {
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderHeader.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderHeader.java b/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderHeader.java
index f54bbe7..0525017 100644
--- a/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderHeader.java
+++ b/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderHeader.java
@@ -89,7 +89,7 @@ public class SalesOrderHeader {
private List<Note> notes = new ArrayList<Note>();
@ManyToOne
- @JoinColumn(name = "CUST_ID", referencedColumnName = "ID")
+ @JoinColumn
private Customer customer;
public Customer getCustomer() {
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderItem.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderItem.java b/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderItem.java
index 44bf6c2..a819ff0 100644
--- a/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderItem.java
+++ b/odata2-jpa-processor/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderItem.java
@@ -69,7 +69,7 @@ public class SalesOrderItem {
delivered = deliveryStatus;
}
- @JoinColumn(name = "Material_Id", referencedColumnName = "MATERIAL_ID")
+ @JoinColumn(name = "Material_Id")
@ManyToOne
private Material material;
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java b/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java
index 938e00d..256ffdd 100644
--- a/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java
+++ b/odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/web/JPAReferenceServiceFactory.java
@@ -47,6 +47,7 @@ public class JPAReferenceServiceFactory extends ODataJPAServiceFactory {
oDataJPAContext
.setJPAEdmExtension((JPAEdmExtension) new SalesOrderProcessingExtension());
oDataJPAContext.setPageSize(PAGE_SIZE);
+ oDataJPAContext.setDefaultNaming(false);
setErrorLevel();
setOnWriteJPAContent(onDBWriteContent);
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_Category.properties
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_Category.properties b/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_Category.properties
index 86d4a13..d9b44e6 100644
--- a/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_Category.properties
+++ b/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_Category.properties
@@ -16,7 +16,7 @@
# specific language governing permissions and limitations
# under the License.
#-------------------------------------------------------------------------------
-query_1 = INSERT INTO T_CATEGORY (CODE,DESC) VALUES('P1','Pen');
-query_2 = INSERT INTO T_CATEGORY (CODE,DESC) VALUES('P2','Pencil');
-query_3 = INSERT INTO T_CATEGORY (CODE,DESC) VALUES('S1','Sharpner');
-query_4 = INSERT INTO T_CATEGORY (CODE,DESC) VALUES('E1','Eraser');
\ No newline at end of file
+query_1 = INSERT INTO T_CATEGORY (CODE,ID,DESC) VALUES('P1',1,'Pen');
+query_2 = INSERT INTO T_CATEGORY (CODE,ID,DESC) VALUES('P2',1,'Pencil');
+query_3 = INSERT INTO T_CATEGORY (CODE,ID,DESC) VALUES('S1',2,'Sharpner');
+query_4 = INSERT INTO T_CATEGORY (CODE,ID,DESC) VALUES('E1',3,'Eraser');
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_Material.properties
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_Material.properties b/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_Material.properties
index 7ea5ade..653fafd 100644
--- a/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_Material.properties
+++ b/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_Material.properties
@@ -17,14 +17,14 @@
# under the License.
#-------------------------------------------------------------------------------
-material_query_1 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, PRICE, MEASUREMENT_UNIT) values(111, 'My Pen', 'P1', 111.1, 'Piece');
-material_query_2 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, PRICE, MEASUREMENT_UNIT) values(112, 'My Great Pen', 'P1', 112.1, 'Piece');
-material_query_3 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, PRICE, MEASUREMENT_UNIT) values(113, 'Super Pen', 'P1', 113.1, 'Piece');
-material_query_4 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, PRICE, MEASUREMENT_UNIT) values(114, 'Marvel Pen', 'P1', 114.1, 'Piece');
-material_query_5 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, PRICE, MEASUREMENT_UNIT) values(115, 'Smooth', 'P2', 115.1, 'Piece');
-material_query_6 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, PRICE, MEASUREMENT_UNIT) values(116, 'Silver Line', 'P2', 116.1, 'Piece');
-material_query_7 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, PRICE, MEASUREMENT_UNIT) values(117, 'Dark Line', 'P2', 117.1, 'Piece');
-material_query_8 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, PRICE, MEASUREMENT_UNIT) values(118, 'Sharp', 'S1', 118.1, 'Piece');
-material_query_9 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, PRICE, MEASUREMENT_UNIT) values(119, 'Cut Sharp', 'S1', 119.1, 'Piece');
-material_query_10 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, PRICE, MEASUREMENT_UNIT) values(120, 'Thin line', 'S1', 120.1, 'Piece');
-material_query_11 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, PRICE, MEASUREMENT_UNIT) values(121, 'Clean', 'E1', 121.1, 'Piece');
\ No newline at end of file
+material_query_1 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, CAT_ID, PRICE, MEASUREMENT_UNIT) values(111, 'My Pen', 'P1', 1, 111.1, 'Piece');
+material_query_2 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, CAT_ID, PRICE, MEASUREMENT_UNIT) values(112, 'My Great Pen', 'P1', 1, 112.1, 'Piece');
+material_query_3 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, CAT_ID, PRICE, MEASUREMENT_UNIT) values(113, 'Super Pen', 'P1', 1, 113.1, 'Piece');
+material_query_4 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, CAT_ID, PRICE, MEASUREMENT_UNIT) values(114, 'Marvel Pen', 'P1', 1, 114.1, 'Piece');
+material_query_5 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, CAT_ID, PRICE, MEASUREMENT_UNIT) values(115, 'Smooth', 'P2', 1, 115.1, 'Piece');
+material_query_6 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, CAT_ID, PRICE, MEASUREMENT_UNIT) values(116, 'Silver Line', 'P2', 1, 116.1, 'Piece');
+material_query_7 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, CAT_ID, PRICE, MEASUREMENT_UNIT) values(117, 'Dark Line', 'P2', 1, 117.1, 'Piece');
+material_query_8 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, CAT_ID, PRICE, MEASUREMENT_UNIT) values(118, 'Sharp', 'S1', 2, 118.1, 'Piece');
+material_query_9 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, CAT_ID, PRICE, MEASUREMENT_UNIT) values(119, 'Cut Sharp', 'S1', 2, 119.1, 'Piece');
+material_query_10 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, CAT_ID, PRICE, MEASUREMENT_UNIT) values(120, 'Thin line', 'S1', 2, 120.1, 'Piece');
+material_query_11 = insert into T_MATERIAL (MATERIAL_ID , MATERIAL_NAME, TYPE_CODE, CAT_ID, PRICE, MEASUREMENT_UNIT) values(121, 'Clean', 'E1', 3, 121.1, 'Piece');
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/13093430/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_SalesOrderHeader.properties
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_SalesOrderHeader.properties b/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_SalesOrderHeader.properties
index b5ebf24..8b519bf 100644
--- a/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_SalesOrderHeader.properties
+++ b/odata2-jpa-processor/jpa-web/src/main/resources/SQL_Insert_SalesOrderHeader.properties
@@ -17,14 +17,14 @@
# under the License.
#-------------------------------------------------------------------------------
-query1 = insert into T_SALESORDERHEADER (SO_ID, CUST_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(1, 100, 'INR', '01', '2012-11-01 00:01:00');
-query2 = insert into T_SALESORDERHEADER (SO_ID, CUST_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(2, 100, 'USD', '01', '2013-01-02 00:00:00');
-query3 = insert into T_SALESORDERHEADER (SO_ID, CUST_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(3, 100, 'USD', '02', '2013-01-01 14:00:00');
-query4 = insert into T_SALESORDERHEADER (SO_ID, CUST_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(4, 200, 'INR', '01', '2013-01-02 00:00:00');
-query5 = insert into T_SALESORDERHEADER (SO_ID, CUST_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(5, 201, 'INR', '02', '2013-01-01 14:14:14');
-query6 = insert into T_SALESORDERHEADER (SO_ID, CUST_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(6, 101, 'EUR', '01', '2013-01-02 00:00:00');
-query7 = insert into T_SALESORDERHEADER (SO_ID, CUST_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(7, 201, 'EUR', '02', '2013-01-01 14:14:00');
-query8 = insert into T_SALESORDERHEADER (SO_ID, CUST_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(8, 201, 'GBR', '01', '2013-01-02 00:00:00');
-query9 = insert into T_SALESORDERHEADER (SO_ID, CUST_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(9, 101, 'GBR', '02', '2013-01-01 00:00:00');
-query10 = insert into T_SALESORDERHEADER (SO_ID, CUST_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(10, 100, 'AUD', '01', '2013-01-01 00:00:00');
-query11 = insert into T_SALESORDERHEADER (SO_ID, CUST_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(11, 202, 'AUD', '02', '2013-01-02 00:00:00');
\ No newline at end of file
+query1 = insert into T_SALESORDERHEADER (SO_ID, customer_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(1, 100, 'INR', '01', '2012-11-01 00:01:00');
+query2 = insert into T_SALESORDERHEADER (SO_ID, customer_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(2, 100, 'USD', '01', '2013-01-02 00:00:00');
+query3 = insert into T_SALESORDERHEADER (SO_ID, customer_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(3, 100, 'USD', '02', '2013-01-01 14:00:00');
+query4 = insert into T_SALESORDERHEADER (SO_ID, customer_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(4, 200, 'INR', '01', '2013-01-02 00:00:00');
+query5 = insert into T_SALESORDERHEADER (SO_ID, customer_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(5, 201, 'INR', '02', '2013-01-01 14:14:14');
+query6 = insert into T_SALESORDERHEADER (SO_ID, customer_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(6, 101, 'EUR', '01', '2013-01-02 00:00:00');
+query7 = insert into T_SALESORDERHEADER (SO_ID, customer_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(7, 201, 'EUR', '02', '2013-01-01 14:14:00');
+query8 = insert into T_SALESORDERHEADER (SO_ID, customer_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(8, 201, 'GBR', '01', '2013-01-02 00:00:00');
+query9 = insert into T_SALESORDERHEADER (SO_ID, customer_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(9, 101, 'GBR', '02', '2013-01-01 00:00:00');
+query10 = insert into T_SALESORDERHEADER (SO_ID, customer_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(10, 100, 'AUD', '01', '2013-01-01 00:00:00');
+query11 = insert into T_SALESORDERHEADER (SO_ID, customer_ID, CURRENCY_CODE, DELIVERY_STATUS, creationDate) values(11, 202, 'AUD', '02', '2013-01-02 00:00:00');
\ No newline at end of file