diff --git a/src/org/redkale/source/EntityInfo.java b/src/org/redkale/source/EntityInfo.java index edf7fdd54..655dfbeed 100644 --- a/src/org/redkale/source/EntityInfo.java +++ b/src/org/redkale/source/EntityInfo.java @@ -97,6 +97,9 @@ public final class EntityInfo { //用于存在database.table_20160202类似这种分布式表 private final Set tables = new CopyOnWriteArraySet<>(); + //不能为null的字段名 + private final Set notNullColumns = new CopyOnWriteArraySet<>(); + //分表 策略 private final DistributeTableStrategy tableStrategy; @@ -322,6 +325,9 @@ public final class EntityInfo { updateattrs.add(attr); updateAttributeMap.put(fieldname, attr); } + if (col != null && !col.nullable()) { + notNullColumns.add(fieldname); + } } queryattrs.add(attr); fields.add(fieldname); @@ -1070,6 +1076,14 @@ public final class EntityInfo { return logger.isLoggable(l) && l.intValue() >= this.logLevel; } + public boolean isNotNullable(String fieldname) { + return notNullColumns.contains(fieldname); + } + + public boolean isNotNullable(Attribute attr) { + return attr == null ? false : notNullColumns.contains(attr.field()); + } + /** * 判断日志级别 *