- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试这个简单的代码:
import java.util.List;
import com.orientechnologies.orient.core.exception.OStorageException;
import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery;
import com.orientechnologies.orient.object.db.OObjectDatabasePool;
import com.orientechnologies.orient.object.db.OObjectDatabaseTx;
public class ProgramOrientDB {
private static TestObjectFiller filler = new TestObjectFiller();
private static interface DBCallback<T> {
T call(OObjectDatabaseTx db) throws Exception;
}
private static <T> T execWithDB(DBCallback<T> cb) throws Exception {
OObjectDatabaseTx db;
try {
db = OObjectDatabasePool.global().acquire("local:c:/tmp/odb", "admin", "admin");
} catch (OStorageException exc) {
db = new OObjectDatabaseTx("local:c:/tmp/odb");
db.create();
}
try {
return cb.call(db);
} finally {
db.close();
}
}
private static TestObject dump(TestObject o) {
System.out.println(o);
return o;
}
public static void main(String[] args) throws Exception {
Runtime run = Runtime.getRuntime();
Process pr = run.exec("cmd /c del /s/q c:\\tmp\\odb");
pr.waitFor();
execWithDB(new DBCallback<Void>() {
@Override
public Void call(OObjectDatabaseTx db) throws Exception {
db.getEntityManager().registerEntityClass(TestObject.class);
dump((TestObject)db.save(filler.randomFill(db.newInstance(TestObject.class))));
return null;
}
});
execWithDB(new DBCallback<Void>() {
@Override
public Void call(OObjectDatabaseTx db) throws Exception {
db.getEntityManager().registerEntityClass(TestObject.class);
for (TestObject o : (List<TestObject>)db.query(new OSQLSynchQuery<TestObject>("select * from TestObject"))) {
System.out.println(o);
}
return null;
}
});
}
}
它向控制台输出:
TestObject{prop1: 'captivation', prop2: 'Caribbean's', prop3: -1912492199, prop4: 0.9350339155517686, prop5: false}
TestObject{prop1: 'null', prop2: 'null', prop3: 0, prop4: 0.0, prop5: false}
而我预计第一行会输出两次。谁能找出问题所在吗?
编辑1
这是 TestObject.java:
public class TestObject {
private String m_prop1;
private String m_prop2;
private int m_prop3;
private double m_prop4;
private boolean m_prop5;
public String getProp1() {
return m_prop1;
}
public void setProp1(String prop1) {
m_prop1 = prop1;
}
public String getProp2() {
return m_prop2;
}
public void setProp2(String prop2) {
m_prop2 = prop2;
}
public int getProp3() {
return m_prop3;
}
public void setProp3(int prop3) {
m_prop3 = prop3;
}
public double getProp4() {
return m_prop4;
}
public void setProp4(double prop4) {
m_prop4 = prop4;
}
public boolean isProp5() {
return m_prop5;
}
public void setProp5(boolean prop5) {
m_prop5 = prop5;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("TestObject");
sb.append("{prop1: '").append(m_prop1).append('\'');
sb.append(", prop2: '").append(m_prop2).append('\'');
sb.append(", prop3: ").append(m_prop3);
sb.append(", prop4: ").append(m_prop4);
sb.append(", prop5: ").append(m_prop5);
sb.append('}');
return sb.toString();
}
}
编辑2
更改了 TestObject.java 以包含以下字段:
@javax.persistence.Id
private Object id;
并添加到toString()。现在程序打印:
TestObject{id: 'null', prop1: 'gnaw', prop2: 'fishermen', prop3: -322577834, prop4: 0.7442149523357203, prop5: true}
TestObject{id: 'null', prop1: 'null', prop2: 'null', prop3: 0, prop4: 0.0, prop5: false}
这也好不了多少。
编辑3
问题是 OObjectProxyMethodHandler.invoke()
没有被调用,即使 db.newInstance
确实返回代理,我使用 TestObject.setXXX
设置属性方法。我不知道为什么不调用处理程序。
编辑4
好的,处理程序的问题是 OObjectMethodFilter
实现的方法过滤器正在检查方法是否由使用特定命名方案命名的字段支持。 TestObject
类不遵循该方案 - 它使用 m_
私有(private)字段的前缀,未通过过滤测试。删除了前缀,现在 OObjectProxyMethodHandler.invoke()
叫做。然而,最终的结果还是一样。正在进一步调查。
最佳答案
看起来很奇怪,输出没有记录的 RID。您是否出于布局目的删除了它们?
关于java - 尝试与 OrientDB 合作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15502441/
有什么创意可以在不执行 O/S Thread.Sleep(10) 的情况下通过合作/非抢占式多任务处理来避免 yield 或 sleep 上的死锁?通常 yield 或 sleep 调用将回调到调度程
我在 httpd.conf 中取消注释了以下行: LoadModule php5_module libexec/apache2/libphp5.so 当我转到任何 php 页面时,文件会下载而不是显示
我正在创建一个新的支付应用程序。我有一个客户端应用程序,用户可以选择价格,输入其身份验证信息,然后客户端创建 iso 8583 消息并将此数据发送到银行服务器。 根据我的研究,我可以使用 jPOS 来
我正在尝试这个简单的代码: import java.util.List; import com.orientechnologies.orient.core.exception.OStorageExce
当我去列表时,这将像这样弹出子列表。这是使用 Chrome 和 Opera。但是在火狐浏览器中是这样显示的。 HTML代码 Categories Printing Mate
尝试使用 bc 对数组中的元素求和,我有一个包含名称和其值的文件,如果名称出现 3 次,我应该将其值乘以 3,然后找到所有元素的总和,我看到标准输入错误 $ cat foo.txt max 2.3 h
一般来说,是否有一个接口(interface)表明TransactionScope-awareness?是否有利用 TransactionScope 的常用数据库列表? (它是扩展 DbConnect
我想知道为什么没有确定的方法来处理 Jackson。我只想解析 JSON 字符串: ObjectMapper mapper = new ObjectMapper(); Customer[] myObj
Expo是很棒的。它的目标之一是仅使用 javascript 来编写 React Native 应用程序。 您如何确定第三方 React Native 库是否可以在 Expo 开发环境中工作? 最佳答
我有一个 Rad 组合框和 2 个 RadGrid - grvUser 和 grvRole grvUser RadGrid如下...
我一直在努力 Unsafe JavaScript attempt to access frame with URL http://lolfantasy.net/ from frame with URL
我有这种电子邮件表 id | url | id1 | id2 | mail_date | message 我的行示例 id | url | id1 | id2 | mail_date | messag
我正在尝试弄清楚如何使用委托(delegate)和协议(protocol)。 我有一个 MessageFetcher 类,它从 url 中获取消息。 class MessageFetcher { f
所以我已经尝试了几个星期让 GLFW3 与 MinGW 一起工作(通过 Code::Blocks IDE),但每次都失败了。我在每个 glfw 参数中都得到了一大堆“ undefined refere
当我写这段代码时,我在 Scala 中遇到编译错误 var s: Stack[_ ,这显然是一个错误。 这解释了为什么做 x :: xs不危险。现在来解释为什么它会打字: :: 的签名在 List[
我刚开始一个非常简单的项目,并尝试同时使用 ButterKnife 和 Jack 编译器,但它们似乎不能很好地相互配合。 Gradle插件版本:2.2.0-alpha5 在我的模块 build.gra
我一直在关注本指南(并通过 Composer 安装了所有内容):http://docs.behat.org/cookbook/behat_and_mink.html并试图让 Behat + Mink
我无法让 Google 的 Repo、gerrit 和 Jenkins 一起工作。 我们的设置: 我们有一个由几个 git 存储库构建的 Repo,它们都在我们的 gerrit 服务器上。 list
我使用 iText 库来创建并操作 PDF 文档。让我们有一个包含简单字符串的文档,例如“Hello world”。所以在pdf文件结构中,我们必须有(Hello world)Tj。问题是我如何通过使
我在 Jasper 中为 noto-sans 字体 ( https://www.google.com/get/noto/#sans-lgc ) 创建了一个字体扩展,并将其添加到我的类路径中。我的应用程
我是一名优秀的程序员,十分优秀!