mirror of https://github.com/apache/openjpa.git
Fix for OPENJPA-554.
git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@645589 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1b5aac791d
commit
9c19356c7c
|
@ -45,15 +45,17 @@ class GetMapValue
|
||||||
|
|
||||||
private final Val _map;
|
private final Val _map;
|
||||||
private final Val _key;
|
private final Val _key;
|
||||||
|
private final String _alias;
|
||||||
private ClassMetaData _meta = null;
|
private ClassMetaData _meta = null;
|
||||||
private Class _cast = null;
|
private Class _cast = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor. Provide the map and key to operate on.
|
* Constructor. Provide the map and key to operate on.
|
||||||
*/
|
*/
|
||||||
public GetMapValue(Val map, Val key) {
|
public GetMapValue(Val map, Val key, String alias) {
|
||||||
_map = map;
|
_map = map;
|
||||||
_key = key;
|
_key = key;
|
||||||
|
_alias = alias;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ClassMetaData getMetaData() {
|
public ClassMetaData getMetaData() {
|
||||||
|
@ -111,7 +113,8 @@ class GetMapValue
|
||||||
|
|
||||||
public void select(Select sel, ExpContext ctx, ExpState state,
|
public void select(Select sel, ExpContext ctx, ExpState state,
|
||||||
boolean pks) {
|
boolean pks) {
|
||||||
sel.select(newSQLBuffer(sel, ctx, state), this);
|
sel.select(newSQLBuffer(sel, ctx, state).append(" AS ").append(_alias),
|
||||||
|
this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void selectColumns(Select sel, ExpContext ctx, ExpState state,
|
public void selectColumns(Select sel, ExpContext ctx, ExpState state,
|
||||||
|
@ -127,7 +130,7 @@ class GetMapValue
|
||||||
|
|
||||||
public void orderBy(Select sel, ExpContext ctx, ExpState state,
|
public void orderBy(Select sel, ExpContext ctx, ExpState state,
|
||||||
boolean asc) {
|
boolean asc) {
|
||||||
sel.orderBy(newSQLBuffer(sel, ctx, state), asc, false);
|
sel.orderBy(_alias, asc, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private SQLBuffer newSQLBuffer(Select sel, ExpContext ctx, ExpState state) {
|
private SQLBuffer newSQLBuffer(Select sel, ExpContext ctx, ExpState state) {
|
||||||
|
|
|
@ -58,6 +58,7 @@ public class JDBCExpressionFactory
|
||||||
|
|
||||||
private final ClassMapping _type;
|
private final ClassMapping _type;
|
||||||
private final SelectConstructor _cons = new SelectConstructor();
|
private final SelectConstructor _cons = new SelectConstructor();
|
||||||
|
private int _getMapValueAlias = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor. Supply the type we're querying against.
|
* Constructor. Supply the type we're querying against.
|
||||||
|
@ -396,6 +397,7 @@ public class JDBCExpressionFactory
|
||||||
}
|
}
|
||||||
|
|
||||||
public Value getMapValue(Value map, Value arg) {
|
public Value getMapValue(Value map, Value arg) {
|
||||||
return new GetMapValue((Val) map, (Val) arg);
|
return new GetMapValue((Val) map, (Val) arg,
|
||||||
|
"gmv" + _getMapValueAlias++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue