diff --git a/src/main/java/de/thm/arsnova/entities/serialization/CouchDbDocumentModule.java b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbDocumentModule.java
index c5af59dfee43a5ea78fa271d8ac2f45c22c24f3e..bf6cfd26ce418719134b4c423d34094cbbb27b91 100644
--- a/src/main/java/de/thm/arsnova/entities/serialization/CouchDbDocumentModule.java
+++ b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbDocumentModule.java
@@ -28,6 +28,6 @@ public class CouchDbDocumentModule extends SimpleModule {
 	@Override
 	public void setupModule(SetupContext context) {
 		context.setMixInAnnotations(Entity.class, CouchDbDocumentMixIn.class);
-		context.setMixInAnnotations(de.thm.arsnova.entities.migration.v2.Entity.class, CouchDbDocumentMixIn.class);
+		context.setMixInAnnotations(de.thm.arsnova.entities.migration.v2.Entity.class, CouchDbDocumentV2MixIn.class);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/entities/serialization/CouchDbDocumentV2MixIn.java b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbDocumentV2MixIn.java
new file mode 100644
index 0000000000000000000000000000000000000000..b1cba4e5d10209e3d49751e1ba6d4209ae00c6be
--- /dev/null
+++ b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbDocumentV2MixIn.java
@@ -0,0 +1,42 @@
+/*
+ * This file is part of ARSnova Backend.
+ * Copyright (C) 2012-2017 The ARSnova Team
+ *
+ * ARSnova Backend is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * ARSnova Backend is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package de.thm.arsnova.entities.serialization;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import de.thm.arsnova.entities.Entity;
+
+@JsonIgnoreProperties(value = {"type"}, allowGetters = true)
+public abstract class CouchDbDocumentV2MixIn {
+	@JsonProperty("_id")
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	abstract String getId();
+
+	@JsonProperty("_id") abstract void setId(String id);
+
+	@JsonProperty("_rev")
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	abstract String getRevision();
+
+	@JsonProperty("_rev") abstract String setRevision(String rev);
+
+	@JsonSerialize(converter = CouchDbTypeFieldV2Converter.class)
+	abstract Class<? extends Entity> getType();
+}
diff --git a/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldConverter.java b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldConverter.java
index 3a1cf5225722650706541d807de0a57a3e2e952e..b9fefcadb0dc6444cefee70bea07c14b4c00fc18 100644
--- a/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldConverter.java
+++ b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldConverter.java
@@ -20,36 +20,13 @@ package de.thm.arsnova.entities.serialization;
 import com.fasterxml.jackson.databind.JavaType;
 import com.fasterxml.jackson.databind.type.TypeFactory;
 import com.fasterxml.jackson.databind.util.Converter;
-import de.thm.arsnova.entities.migration.v2.Answer;
-import de.thm.arsnova.entities.migration.v2.Comment;
-import de.thm.arsnova.entities.migration.v2.Content;
-import de.thm.arsnova.entities.migration.v2.DbUser;
-import de.thm.arsnova.entities.migration.v2.Entity;
-import de.thm.arsnova.entities.migration.v2.LogEntry;
-import de.thm.arsnova.entities.migration.v2.Motd;
-import de.thm.arsnova.entities.migration.v2.MotdList;
-import de.thm.arsnova.entities.migration.v2.Room;
-
-import java.util.HashMap;
-import java.util.Map;
+import de.thm.arsnova.entities.Entity;
 
 public class CouchDbTypeFieldConverter implements Converter<Class<? extends Entity>, String> {
-	private static final Map<Class<? extends Entity>, String> typeMapping = new HashMap<>();
-
-	{
-		typeMapping.put(LogEntry.class, "log");
-		typeMapping.put(DbUser.class, "userdetails");
-		typeMapping.put(Motd.class, "motd");
-		typeMapping.put(MotdList.class, "motdlist");
-		typeMapping.put(Room.class, "session");
-		typeMapping.put(Comment.class, "interposed_question");
-		typeMapping.put(Content.class, "skill_question");
-		typeMapping.put(Answer.class, "skill_question_answer");
-	}
 
 	@Override
 	public String convert(Class<? extends Entity> aClass) {
-		return typeMapping.get(aClass);
+		return aClass.getSimpleName();
 	}
 
 	@Override
diff --git a/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldV2Converter.java b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldV2Converter.java
new file mode 100644
index 0000000000000000000000000000000000000000..d0ed69da24e64359ee954d715a0aa54b73559c1b
--- /dev/null
+++ b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldV2Converter.java
@@ -0,0 +1,64 @@
+/*
+ * This file is part of ARSnova Backend.
+ * Copyright (C) 2012-2017 The ARSnova Team
+ *
+ * ARSnova Backend is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * ARSnova Backend is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package de.thm.arsnova.entities.serialization;
+
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.type.TypeFactory;
+import com.fasterxml.jackson.databind.util.Converter;
+import de.thm.arsnova.entities.migration.v2.Answer;
+import de.thm.arsnova.entities.migration.v2.Comment;
+import de.thm.arsnova.entities.migration.v2.Content;
+import de.thm.arsnova.entities.migration.v2.DbUser;
+import de.thm.arsnova.entities.migration.v2.Entity;
+import de.thm.arsnova.entities.migration.v2.LogEntry;
+import de.thm.arsnova.entities.migration.v2.Motd;
+import de.thm.arsnova.entities.migration.v2.MotdList;
+import de.thm.arsnova.entities.migration.v2.Room;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class CouchDbTypeFieldV2Converter implements Converter<Class<? extends Entity>, String> {
+	private static final Map<Class<? extends Entity>, String> typeMapping = new HashMap<>();
+
+	{
+		typeMapping.put(LogEntry.class, "log");
+		typeMapping.put(DbUser.class, "userdetails");
+		typeMapping.put(Motd.class, "motd");
+		typeMapping.put(MotdList.class, "motdlist");
+		typeMapping.put(Room.class, "session");
+		typeMapping.put(Comment.class, "interposed_question");
+		typeMapping.put(Content.class, "skill_question");
+		typeMapping.put(Answer.class, "skill_question_answer");
+	}
+
+	@Override
+	public String convert(Class<? extends Entity> aClass) {
+		return typeMapping.get(aClass);
+	}
+
+	@Override
+	public JavaType getInputType(TypeFactory typeFactory) {
+		return typeFactory.constructGeneralizedType(typeFactory.constructType(Class.class), Entity.class);
+	}
+
+	@Override
+	public JavaType getOutputType(TypeFactory typeFactory) {
+		return typeFactory.constructType(String.class);
+	}
+}