小编Wol*_*Joe的帖子

在Jongo中按对象ID查找

我知道这个问题非常基本......我很抱歉.

我不能使用Jongo为Mongo做一个'ID by ID'.

我试过了

Iterator<MongoTest> all = db.getCollection("mongoTest").find("{'_id': ObjectId('5194d46bdda2de09c656b64b')}").as(MongoTest.class).iterator();
Run Code Online (Sandbox Code Playgroud)

错误:

java.lang.IllegalArgumentException: {'_id': ObjectId('5194d46bdda2de09c656b64b')} cannot be parsed
at org.jongo.query.JsonQuery.marshallQuery(JsonQuery.java:34)
at org.jongo.query.JsonQuery.<init>(JsonQuery.java:27)
at org.jongo.query.JsonQueryFactory.createQuery(JsonQueryFactory.java:52)
at org.jongo.Find.<init>(Find.java:41)
at org.jongo.MongoCollection.find(MongoCollection.java:79)
at org.jongo.MongoCollection.find(MongoCollection.java:75)
Run Code Online (Sandbox Code Playgroud)

我试过了

Iterator<MongoTest> all = db.getCollection("mongoTest").find(withOid(new ObjectId("5194d46bdda2de09c656b64b"))).as(MongoTest.class).iterator();
Run Code Online (Sandbox Code Playgroud)

正如在文档中一样,我甚至无法编译它......有两种可能的ObjectId类型.

de.undercouch.bson4jackson.types.ObjectId;
Run Code Online (Sandbox Code Playgroud)

告诉我

The constructor ObjectId(String) is undefined
Run Code Online (Sandbox Code Playgroud)

如果我使用

org.bson.types.ObjectId;
Run Code Online (Sandbox Code Playgroud)

它似乎工作得更好,有时 - 但它仍然告诉我这withOid( ObjectId )是未定义的.这并不奇怪,究竟是什么对象应该是该函数的一部分呢?

我的问题:如何在Jongo中通过_id进行查找?

java mongodb jongo

3
推荐指数
1
解决办法
3810
查看次数

数据库访问无法在早上工作

我正在建立一个登录系统.当我在我自己的计算机上测试时,它工作得非常好.一旦我将它上传到我们的服务器,我们就开始遇到问题......它不会在早上登录几秒钟.其余时间工作正常.

我昨天和今天只碰到了这个,我每天早上只能测试一次,所以很难给出太多细节.这是设置:

首页是一个使用javascript和angular js的html页面.它会显示一个空框架,然后对页面内容发出ajax请求.在任何返回值为"访问权限不足"的失败的ajax请求中,它将取消隐藏div持有登录表单.该登录表单空白页面并提供提交按钮.单击提交按钮后,它会向Java服务器发送ajax登录请求.一旦返回该请求,该页面就会再次隐藏登录表单,并且会像往常一样继续运行.

在后端,我们有一个运行1.6到1.7之间的java服务器(是的,我知道,我应该知道更好 - 服务器报告它是1.7.001,但1.7功能,如基于字符串的switch-case语句''工作,所以我们在上传时编译1.6 java.这是我们正在处理的一个已知问题.)我们正在使用Stripes来执行前端代码.数据库是一个mysql数据库,位于同一台服务器上.

发生此错误时,它始终是早上的第一次登录.我加载页面,输入用户/通行证,然后单击登录.页面闪烁并返回登录屏幕.我还没有在登录后清除用户/通行证,因为我们还处于测试阶段,所以我可以再次点击"登录",再次点击十几次,最后登录.这个问题有只发生过两次:昨天和今天,早上第一次登录.

我的同事在之前的项目,同一台服务器上遇到了类似的问题.他说他认为问题与sql server关闭连接有关,而java服务器没有意识到连接已经关闭,但他不确定,并且不知道如何修复它.

我甚至不知道提供什么其他信息,显示什么代码,或类似的东西.我可以在任何地方找到的最好的建议是"设置一个预定的事件来每隔几个小时发出一次确定的数据库请求",但这似乎是...... kludgy.如果有人能帮助我,我希望能够测试更确定的问题和解决方案.如果有人能告诉我他们希望看到的代码,我很乐意将其粘贴.更多信息?请问.范围看起来很...... 很大 ......我不知道哪些部分可能是相关的.

编辑1:错误代码!

[ERROR] - Database Error 1 on verify
java.sql.SQLException: Already closed.
    at org.apache.tomcat.dbcp.dbcp.PoolableConnection.close(PoolableConnection.java:114)
    at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:191)
Run Code Online (Sandbox Code Playgroud)

编辑2:连接代码

这是我们专门为所有mysql数据库连接保留的对象.

private static ConnectionSource coreConnection = null;
private static DataSource coreDataSource = null;

public static ConnectionSource getCoreConnection() throws SQLException, NamingException {
    if (coreConnection == null || !coreConnection.isOpen()) {        
        Context env = (Context)new InitialContext().lookup("java:comp/env");        
        coreDataSource = (DataSource)env.lookup("webapps/test");
        coreConnection = new DataSourceConnectionSource(coreDataSource, new MysqlDatabaseType());
    }
    return coreConnection;
}
Run Code Online (Sandbox Code Playgroud)

java mysql stripes

2
推荐指数
1
解决办法
220
查看次数

嵌套ng-repeats中的Angular JS ng-class-odd

我正在尝试开发一个非常通用的表输出器 - 没有设置行数或列数.因此,我有嵌套的ng-repeat属性,如下:

<table>
    <tr ng-repeat="row in rowList">
        <td ng-repeat="col in colList">{{printCell(row,col)}}</td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

它工作得很棒!直到我尝试使用ng-class-even和相应ng-class-odd地更改行的背景颜色.

如果我将ng-class-***语句放在td标签上,我会得到交替的列颜色.

如果我把ng-class-***语句放在tr标签上,我就不会得到任何课堂作业 - 它们都是默认的.

我想要交替的行颜色.我该怎么做呢?

编辑:

请删除这个,有人吗?事实证明问题是我的css类指定类是在td标记上设置的.

javascript nested angularjs angularjs-ng-repeat

2
推荐指数
1
解决办法
2万
查看次数