From ef88063094846810f17faad66ec58f1b0f8c0385 Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Mon, 13 Aug 2018 19:12:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DEntityCache=E9=87=8D=E5=A4=8D?= =?UTF-8?q?insert=E6=95=B0=E6=8D=AE=E6=97=B6=E4=BC=9A=E5=AF=BC=E8=87=B4map?= =?UTF-8?q?=E5=92=8Clist=E7=9A=84=E5=90=8C=E4=B8=80id=E7=9A=84=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E4=B8=8D=E4=B8=80=E8=87=B4=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/org/redkale/source/EntityCache.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/org/redkale/source/EntityCache.java b/src/org/redkale/source/EntityCache.java index fc495d02b..617621d5e 100644 --- a/src/org/redkale/source/EntityCache.java +++ b/src/org/redkale/source/EntityCache.java @@ -442,11 +442,12 @@ public final class EntityCache { public int insert(T value) { if (value == null) return 0; final T rs = newReproduce.apply(this.creator.create(), value); //确保同一主键值的map与list中的对象必须共用。 - T old = this.map.put(this.primary.get(rs), rs); + T old = this.map.putIfAbsent(this.primary.get(rs), rs); if (old == null) { this.list.add(rs); return 1; } else { + update(value); logger.log(Level.WARNING, this.type + " cache repeat insert data: " + value); return 0; }