jdo中查询及排序问题
有两个表:
作者表Authors
private String authorName;//姓名
private String authorPhone;//电话
private String authorAddress;//地址
...
书籍表Books
private String bookName;//书名
private double bookPrice;//价钱
private Authors authors;//作者
...
现在我有一个查询方法:
...
jdoql = jdoql+ "&& bookName==_bookName ";
paramNames =paramNames + ",String _bookName ";
params.add(bookName);
...
Query q = Sys.pm().newQuery(Books.class,jdoql);
q.declareParameters(paramNames);
q.setOrdering( "bookPrice ascending ");
col = (Collection)q.executeWithArray(params.toArray());
...
因为jdo中表的主键(id)是自动生成的,所以有几个问题,想请教各位大虾,
给点好的jdo学习资料也行
1.怎么实现子查询或其它多表查询:
select * from books
where authorsID in (select authorsID from authors
where authorName= '张三 ')
2.怎么实现按作者id排序:q.setOrdering( "authorsID ascending ");
3.当我递增排序的时候为null的总是排在前面,我想把null的排到后面怎么办,我想先列出非null的在列出null的可是,现在是按两个参数排序,所以比较烦,有没有什么好办法?
q.setOrdering( "bookPrice ascending,bookName ascending ");
------解决方案--------------------在google查询了相关资料,感觉和hibernate有类似的功能.感觉用的人不是很多.
------解决方案--------------------1.多表查询可以直接authors.authorName==**
2.新加记录的时候,给一个创建时间,然后按时间排序
3.最好是添加的时候要毕填