mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#1612 - query.setMapKey("customer.id") throws NullPointerException (ie. mapKey is a path rather than local property)
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package io.ebeaninternal.server.deploy;
|
||||
|
||||
import io.ebean.bean.BeanCollection;
|
||||
import io.ebean.bean.EntityBean;
|
||||
import io.ebean.common.BeanMap;
|
||||
import io.ebeaninternal.server.el.ElPropertyValue;
|
||||
import io.ebeaninternal.server.query.CQueryCollectionAdd;
|
||||
|
||||
class BeanMapQueryHelp<T> implements CQueryCollectionAdd<T> {
|
||||
|
||||
private final ElPropertyValue elGetValue;
|
||||
|
||||
/**
|
||||
* Create for a findMap query.
|
||||
*/
|
||||
BeanMapQueryHelp(ElPropertyValue elGetValue) {
|
||||
this.elGetValue = elGetValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BeanCollection<T> createEmptyNoParent() {
|
||||
return new BeanMap<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(BeanCollection collection, EntityBean bean, boolean withCheck) {
|
||||
if (bean == null) {
|
||||
((BeanMap<?, ?>) collection).internalPutNull();
|
||||
} else {
|
||||
Object keyValue = elGetValue.pathGet(bean);
|
||||
BeanMap<?, ?> map = ((BeanMap<?, ?>) collection);
|
||||
map.internalPutWithCheck(keyValue, bean);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user