我在尝试通过程序获取数据时遇到了一些问题。我使用objectDB作为我的数据库。此外,我的数据库已经设置,我已将laptop.odb文件放在我的objectDB安装的db文件夹中。此外,当我去探险家并解雇查询时:
select this.modelName == "HP Pavillion"
正确的结果出现了。但是,当我尝试使用我的代码执行相同的操作时,如下所示
public static void main(String argv[]) {
PersistenceManager pm = Utilities.getPersistenceManager("laptop.odb");
System.out.println("-- TEST --\n");
Query query = pm.newQuery(Laptop.class,"this.modelName == \"HP Pavillion\"");
Collection result = (Collection)query.execute();
System.out.println("Result is >> "+result);
此处未返回任何结果。我的输出是:
- TEST find -
结果是>> []
我的课程代码如下。
package com.project;
import java.util.*;
import javax.annotation.processing.Processor;
import javax.jdo.*;
import com.objectdb.Utilities;
public class Laptop {
String modelName; // key
public static void main(String argv[]) {
PersistenceManager pm = Utilities.getPersistenceManager("laptop.odb");
System.out.println("-- TEST find --\n");
Query query = pm.newQuery(Laptop.class,"this.modelName == \"HP Pavillion\"");
Collection result = (Collection)query.execute();
System.out.println("Result is >> "+result);
}
有什么建议吗?
答案 0 :(得分:1)
原因可能是“laptop.odb”指的是一个不存在的ObjectDB数据库。在这种情况下,将自动创建一个新数据库。由于新数据库创建为空,因此查询不会返回任何结果。
尝试指定现有数据库的绝对路径。