我一直在使用Spring Data将实体保存到mongo数据库,我的代码目前看起来像这样:
我有一个回购课程:
public interface LogRepo extends MongoRepository<Log, String> {
}
我有一个实体日志,如下所示:
@Document(
collection = "logs"
)
public class Log {
@Id
private String id;
private String jsonMessage;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getJsonMessage() {
return jsonMessage;
}
public void setJsonMessage(String jsonMessage) {
this.jsonMessage = jsonMessage;
}
}
这对我来说很有用,但是这种方法仅适用于我希望将Log实体保存到“logs”集合的情况。但是,根据上下文,能够将Log实体保存到不同的集合对我来说非常好。我的意思是在运行时定义集合名称会很好。有可能吗?
谢谢,欢呼
答案 0 :(得分:1)
尝试使用继承并以这种方式定义适当的集合名称。可以为您提供保存在不同集合中的可能性,但您仍然无法指定动态集合名称和resp。它们在运行时的数量。
答案 1 :(得分:0)
@Document(
collection = "logs"
)
public class Log {
@Id
private String id;
private String jsonMessage;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getJsonMessage() {
return jsonMessage;
}
public void setJsonMessage(String jsonMessage) {
this.jsonMessage = jsonMessage;
}
}
@Document(
collection = "log_child"
)
public class LogChild extends Log{}
使用MongoOperations保存方法,您可以选择要使用的类以及 根据类,它将选择适当的集合。