diff --git a/l2jserver2-common/src/main/java/com/l2jserver/service/database/orientdb/AbstractOrientDatabaseService.java b/l2jserver2-common/src/main/java/com/l2jserver/service/database/orientdb/AbstractOrientDatabaseService.java index b12571ea4..7f434b0dd 100644 --- a/l2jserver2-common/src/main/java/com/l2jserver/service/database/orientdb/AbstractOrientDatabaseService.java +++ b/l2jserver2-common/src/main/java/com/l2jserver/service/database/orientdb/AbstractOrientDatabaseService.java @@ -383,9 +383,15 @@ public abstract class AbstractOrientDatabaseService extends AbstractService property.setType(OType.getTypeByClass(path.getType())); } final boolean nullable = QPathUtils.isNullable(path); - if (property.isNotNull() != !nullable) + final boolean autoIncrement = QPathUtils + .isAutoIncrementable(path); + if (property.isNotNull() && autoIncrement) + property.setNotNull(false); + else if (property.isNotNull() != !nullable && !autoIncrement) property.setNotNull(!nullable); - if (property.isMandatory() != !nullable) + if (property.isMandatory() && autoIncrement) + property.setMandatory(false); + else if (property.isMandatory() != !nullable && !autoIncrement) property.setMandatory(!nullable); } for (final ForeignKey fk : table.getForeignKeys()) { @@ -578,8 +584,13 @@ public abstract class AbstractOrientDatabaseService extends AbstractService if (primaryKey != null && object instanceof Model) { final Long rawID = row.getDocument().getIdentity() .getClusterPosition(); + row.getDocument() + .field(primaryKey.getMetadata().getExpression() + .toString(), rawID.intValue()); + row.getDocument().save(); // save, again! + final ID id = mapper.getPrimaryKeyMapper() - .createID((RI) rawID); + .createID((RI) (Integer) rawID.intValue()); ((Model>) object).setID(id); } rows++; diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/mapper/ChatMessageMapper.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/mapper/ChatMessageMapper.java index e333f8757..d427b7f7b 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/mapper/ChatMessageMapper.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/database/mapper/ChatMessageMapper.java @@ -37,7 +37,7 @@ public class ChatMessageMapper extends private final PrimaryKeyMapper idMapper = new PrimaryKeyMapper() { @Override public ChatMessageID createID(Integer raw) { - return idMapper.createID(raw); + return idProvider.resolveID(raw); } }; diff --git a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/world/CachedWorldIDService.java b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/world/CachedWorldIDService.java index 3a8608bf4..cc36edfd7 100644 --- a/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/world/CachedWorldIDService.java +++ b/l2jserver2-gameserver/src/main/java/com/l2jserver/service/game/world/CachedWorldIDService.java @@ -122,7 +122,6 @@ public class CachedWorldIDService extends AbstractService implements load(itemDao.selectIDs()); load(npcDao.selectIDs()); - log.info("{} IDs loaded from database"); loaded = true; }