我使用集成测试和Grails脚手架将数据写入mongoDB数据库时遇到问题。尝试从“列表”类型页面中选择域实例时,我收到错误消息“找不到ID为null的[domainname]”。我确定这是因为Grailsurl[controller]/[action]/[id]。此id是一个字符串,需要将其转换为ObjectId以用于Grails查询。有没有办法做到这一点,使其影响指定的域,甚至更好的是,同时影响所有域?我想在我编写我的应用程序时,我可以从操作方法中将其转换为ObjectId,但我希望让脚手架工作或提供一个全局解决方案。 最佳答案
当我尝试将字节数组存储为grails应用程序中域类的字段时,mongo数据库中的结果条目是objectidofthebytearray而不是我期望的BinData对象。例子:classSimpleDomainClass{byte[]filed=['d','w',1,5,'r']}MongoDB中的结果如下:{"field":"[B@29edc561"}我期待的是:{"field":BinData(0,"blahblahblah")}mongo-javadriverdocsclearlystatethatthisshouldbestoredasabinaryobject它正在为我们使用类
我一直在将GMongo用于访问我们的Mongo实例的简单Grails网络应用程序。我们最近在Mongo上启用了身份验证,需要用户名+密码才能访问我们的数据库。据我所知,没有办法在GMongo中提供用户名+密码(除了使用GORM机制,这在我们的案例中不适用)。有什么办法吗?或者以任何其他方式在Groovy/Grails中访问受密码保护的MongoDB? 最佳答案 查看文档,我认为您可以在创建GMongo实例时执行此操作:importcom.mongodb.MongoClientimportcom.mongodb.MongoCreden
我所知道的:mongod正在运行,数据库存在,集合存在,我可以使用mongodb控制台进行插入,并且到mongod实例的连接是由Grails建立的(即我可以查询等等)。其他细节:Grails2.01、mongodb插件1.0.0RC4、hibernate插件2.01、mongodb2.0.3classNode{staticmapWith="mongo"staticconstraints={}ObjectIdidIntegersomeId//someIdcanbenullorjustnon-existentStringname}什么不起作用:我无法通过GORM插入任何数据,即使我明确将f
我想要一个由map引用的嵌入式文档(如下面的“A类”)。环境为Grails+GORM+MongoDB。这可能吗?如果可能,怎么做?classA{//failswithIllegalArgumentExceptionoccurredwhenprocessingrequest:can'tserializeclassXinline234oforg.bson.BasicBSONEncoderstaticmapWith="mongo"Mapmap=newHashMap()}classB{//worksstaticmapWith="mongo"Listlist=newArrayList()}cla
我目前正在尝试使用Grails的GORMMongoDB插件来持久化以下类:classResult{StringurldefResult(){}staticconstraints={}staticmapWith="mongo"staticmapping={collection"results"database"crawl"}}我正在运行以保留此类的代码如下:classResultIntegrationTests{@BeforevoidsetUp(){}@AftervoidtearDown(){}@TestvoidtestSomething(){Resultr=newResult();r.
当使用MongoDB作为数据源时,我如何(应该)配置Grails集成测试以自动回滚事务?(我使用的是Grails2.2.1+mongodb插件1.2.0) 最佳答案 对于spock集成测试,我定义了一个MongoIntegrationSpec,它可以控制清理测试数据。dropDbOnCleanup=true//将在每个功能方法执行后删除整个数据库。dropDbOnCleanupSpec=true//规范完成后将删除整个数据库。dropCollectionsOnCleanup=["collectionA","collectionB",
在我使用mongoDb和继承的Grails2.3.8应用程序中,我有这个基域类:classRecord{longbatchIDstaticmapping={tablePerHierarchyfalse}}和这个子类:classIndividualRecordextendsRecord{StringuniqueIdStringfirstNameStringmiddleNamestaticmapping={collection"individualRecords"database"twcdb"}staticconstraints={firstName(nullable:true)middl
我想在MongoDB中使用Grails2.5中的“ElasticSearch”插件。我的“BuildConfig.groovy”文件是:grails.servlet.version="3.0"//Changedependingontargetcontainercompliance(2.5or3.0)grails.project.class.dir="target/classes"grails.project.test.class.dir="target/test-classes"grails.project.test.reports.dir="target/test-reports"g
我有一个域对象,它已经有一个名为versions的属性,所以我想给内置的version属性一个不同的名称(在GORM中用于乐观锁定)。例如,我想将其称为updateCount。请注意,我确实想要乐观锁定的语义;我只是想给这个领域另一个名字。这是我天真地尝试过的(但没有用):classItem{ObjectIdidstatichasMany=[versions:ItemVersion]staticmapping={table'item'versioncolumn:'updateCount'//我非常感谢在...方面的任何帮助确定这是否可行,以及如果是这样,让它发挥作用:-)谢谢!