我用的play框架...
问题是这样的:public static void addParent() throws InterruptedException { // 写死
Date insertTime = new Date();
Parent parent = new Parent();
parent.fullName = "新增家长";
parent.fullNamePinyin = "xin zeng jia zhang";
parent.save();//往数据库里面存入一条数据
List<Long> idFromDB = methodForDocs.getParentList(insertTime);//紧接着从数据库里面取出该条数据(更具createTime字段) System.out.println("idFromDBSize:" + idFromDB.size());
for (int i = 0; i < idFromDB.size(); i++) {
System.out.println("***idFromDB:" + idFromDB.get(i));
}
renderJSON(new Result("测试通过!"));
}getParentList方法是这样的:(该方法是没有问题的)
public static List<Long> getParentList(Date insertTime) {
String hql = "select id from Member where createTime>?";
System.out.println("insertTime:" + insertTime.toString());
List<Long> ids = Member.find(hql, insertTime).fetch();
return ids;
}可是不知道为什么idFromDBSize总是等于0,应该等于1才对啊!?不知道为什么???

解决方案 »

  1.   

    insertTime 设置小点吧,而且应该insert后再取值,另外SQL语句的>应该是>=如果数据库服务器跟你本机不是一台的话,你还得检查时间是否一致。总的来说,你这个程序的逻辑很奇怪,万一是并发写入多条数据,你这个不是就乱了?
      

  2.   

    你格式化一下你的insertTime看看
      

  3.   

    你的insertdata是刚new出来的, Date insertTime = new Date();可以用这种方式来试试改变一下日期条件:
    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DAY_OF_MONTH, 2);
    Date insertDate=calendar.getTime();
      

  4.   

    老师说的没错,是应该>=的,我改成>=就对了,而且我做了那么多工作无非就是想要得到一个刚插入到数据库里面的一条数据的id,事实上我用的是play框架,要得到这个id,我只要parent.id就得到了!唉~绕了好大一个圈子呀,而且就像你说的,我的代码相当不安全,继续努力,谢谢老师