我正在尝试使用MongoJava驱动程序3.6的新更改流功能,但我卡住了。这是我的错误:
ChangeStreamDocument contains generic types that have not been specialised.
Top level classes with generic types are not supported by the PojoCodec.
下面是我启动changeStream的方法:
CodecRegistry pojoCodecRegistry = fromRegistries(MongoClient.getDefaultCodecRegistry(),
fromProviders(PojoCodecProvider.builder().automatic(true).build()));
MongoDatabase database = mongoClient.getDatabase(mongoClientURI.getDatabase())
.withCodecRegistry(pojoCodecRegistry);
collection.insertOne(Person.builder().age(100).build());
collection.insertOne(Person.builder().age(100).build());
collection.watch().forEach((Block<? super ChangeStreamDocument<Person>>) personChangeStreamDocument -> {
System.out.println(personChangeStreamDocument.getFullDocument());
});
< code>Person只是一个POJO。
JAVA-2800中描述的自动< code > projocodeprovider 目前有一个错误。
临时解决方法是手动注册 POJO 类,例如:
CodecRegistry pojoCodecRegistry = fromRegistries(MongoClient.getDefaultCodecRegistry(),
fromProviders(PojoCodecProvider.builder().register(Person.class).build()));
此外,请注意,如果在打开集合上的更改流之前执行了插入操作,您可能看不到事件插入。尽管您可以通过从另一个线程或进程插入/修改文档来轻松测试这一点。请参见更改流了解详情。
更新:票证JAVA-2800
已解决,MongoDB Java驱动程序v3.6.4上提供了修复版本。
我正在尝试使用selenium在pycharm中键入我的第一个GUI测试。 我通过cmd raport安装了selenium: C: 然后我用pycharm编写了一些代码: 这就是当我点击开始时发生的事情: 文件“C:/Users/Admin/PycharmProjects/untitled/venv/test.py”,第3行driver=webdriver.Chrome(“C:\Users\Ad
我正试图在eclipse中运行我的第一个webdriver脚本。使用jre1。8.0_1111. 我使用了下面的代码,但它显示了错误。请帮我查一下密码。 错误堆栈 线程“main”java中出现异常。lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver设置。壁虎。驱动系统属性;有关更多信息,请参阅github。com/mozilla/geckodr
scala-mongo-driver有一个处理case类的很好的文档。http://mongodb.github.io/mongo-scala-driver/2.3/getting-start/quick-tour-case-classs/。在当前情况下,我的case类字段是option[T]值。因此值可以是或。默认编解码器现在将“none”值序列化为null。但如果键的值为none,我想排除它。
DataStax驱动程序Cassandra版本:3.3.2 Scala版本:2.12.4 我正在为Cassandra的datastax java驱动程序中的mappingmanager创建一个scala包装器。 null 为什么它总是从Scala.Collection.Mutable.ArrayBuffer“转换”?解决这个问题的方法是什么?
我试图编译odbc驱动程序,但我有以下错误: 我运行以下命令: 我的Ignite版本是2.5下载者(在01.03.2018): 请帮帮我.
3.6. 编写程序 以file.go代码为例,用以下命令编译: $ 6g file.go 6g是针对amd64指令的编译器,它的输出文件为 file.6。其中 ‘6’ 表示文件是 amd64指令的输出文件。 如果是386和arm 处理器,后缀则为 8 和 5。 也就是说,如果你用的是386处理器,那么应该用8g命令编译, 输出的文件为file.8。 然后用以下命令连接: $ 6l fil