ColumnExpress增加除法、取模表达式

This commit is contained in:
Redkale
2019-07-30 10:31:48 +08:00
parent c7308e7320
commit 528cf45f3f
3 changed files with 37 additions and 9 deletions

View File

@@ -15,17 +15,25 @@ package org.redkale.source;
*/ */
public enum ColumnExpress { public enum ColumnExpress {
/** /**
* 直接赋值 col = val * 赋值 col = val
*/ */
MOV, MOV,
/** /**
* 加值 col = col + val * 加值 col = col + val
*/ */
INC, INC,
/** /**
* 乘值 col = col * val * 乘值 col = col * val
*/ */
MUL, MUL,
/**
* 除值 col = col / val
*/
DIV,
/**
* 取模 col = col % val
*/
MOD,
/** /**
* 与值 col = col & val * 与值 col = col & val
*/ */

View File

@@ -617,6 +617,22 @@ public final class EntityCache<T> {
numb = numb.longValue() * ((Number) val).floatValue(); numb = numb.longValue() * ((Number) val).floatValue();
} }
break; break;
case DIV:
numb = (Number) attr.get(entity);
if (numb == null) {
numb = 0;
} else {
numb = numb.longValue() / ((Number) val).floatValue();
}
break;
case MOD:
numb = (Number) attr.get(entity);
if (numb == null) {
numb = 0;
} else {
numb = numb.longValue() % ((Number) val).intValue();
}
break;
case AND: case AND:
numb = (Number) attr.get(entity); numb = (Number) attr.get(entity);
if (numb == null) { if (numb == null) {

View File

@@ -1006,6 +1006,10 @@ public final class EntityInfo<T> {
return new StringBuilder().append(col).append(" + ").append(val); return new StringBuilder().append(col).append(" + ").append(val);
case MUL: case MUL:
return new StringBuilder().append(col).append(" * ").append(val); return new StringBuilder().append(col).append(" * ").append(val);
case DIV:
return new StringBuilder().append(col).append(" / ").append(val);
case MOD:
return new StringBuilder().append(col).append(" % ").append(val);
case AND: case AND:
return new StringBuilder().append(col).append(" & ").append(val); return new StringBuilder().append(col).append(" & ").append(val);
case ORR: case ORR: