【发布时间】:2015-01-04 16:14:36
【问题描述】:
我有下一个实体使用 DB4O 持久化,它完美地持久化在 db 中。
public class Message {
private String userFrom;
private String userTo;
private String message;
private Date received;
private Boolean readed;
...
}
我在尝试通过一个查询恢复持久对象时遇到问题。
使用 SQL 会这样。
SELECT * FROM Message WHERE readed = 0
AND ((userFrom = 'asd' AND userTo = 'qwe') OR (userFrom = 'qwe' AND userTo = 'asd'))
ORDER BY received DESC
我当前的错误 DB4O 查询如下所示。
Query query = super.getQuery();
query.constrain(Message.class);
Query readedQuery = query.descend("readed");
Query receivedQuery = query.descend("received");
Query userToQuery = query.descend("userTo");
Query userFromQuery = query.descend("userFrom");
receivedQuery.orderDescending()
.constrain(readedQuery.constrain(Boolean.FALSE))
.and(userToQuery.constrain("asd")
.and(userFromQuery.constrain("qwe"))
.or(userToQuery.constrain("qwe")
.and(userFromQuery.constrain("asd"))));
return query.execute();
【问题讨论】:
标签: db4o