[OLINGO-951] Embeddable changes
Signed-off-by: mibo <mibo@mirb.de>
diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAEntity.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAEntity.java
index 793e151..bda0a1b 100644
--- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAEntity.java
+++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAEntity.java
@@ -432,7 +432,11 @@
JPAEdmMapping mapping = (JPAEdmMapping) edmComplexType.getMapping();
Object embeddableObject = mapping.getJPAType().newInstance();
- accessModifier.invoke(jpaEntity, embeddableObject);
+ if (propertyName != null) {
+ accessModifier.invoke(jpaEntity, propertyName, embeddableObject);
+ } else {
+ accessModifier.invoke(jpaEntity, embeddableObject);
+ }
HashMap<String, Method> accessModifiers =
jpaEntityParser.getAccessModifiers(embeddableObject, edmComplexType,
@@ -453,7 +457,7 @@
} else {
if (propertyName != null) {
setProperty(accessModifier, embeddableObject, propertyValue.get(edmPropertyName),
- (EdmSimpleType) edmTyped.getType(), propertyName);
+ (EdmSimpleType) edmTyped.getType(), edmPropertyName);
} else {
setProperty(accessModifier, embeddableObject, propertyValue.get(edmPropertyName),
(EdmSimpleType) edmTyped.getType());
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 4c1d439..203712c 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
@@ -564,7 +564,7 @@
}
} else {
JPAEdmMapping jpaEdmMapping = (JPAEdmMapping) property.getMapping();
- if(jpaEdmMapping.isVirtualAccess()) {
+ if(jpaEdmMapping != null && jpaEdmMapping.isVirtualAccess()) {
method = jpaEntityType.getMethod(ACCESS_MODIFIER_GET, String.class);
}else{
method = jpaEntityType.getMethod(methodName, (Class<?>[]) null);