Java 面临查询错误为“的问题”;HSQL数据库:意外标记:结束于语句“;
我创建了一个activeobject查询,如下所示:Java 面临查询错误为“的问题”;HSQL数据库:意外标记:结束于语句“;,java,jira,active-objects,Java,Jira,Active Objects,我创建了一个activeobject查询,如下所示: ao.find(IP.class, Query.select().where("user=? AND start>=? AND end<=?",u,datefieldl,datefieldl)) IP pi = ao.executeInTransaction(new TransactionCallback() // (1) { @Override pub
ao.find(IP.class, Query.select().where("user=? AND start>=? AND end<=?",u,datefieldl,datefieldl))
IP pi = ao.executeInTransaction(new TransactionCallback() // (1)
{
@Override
public IP doInTransaction()
{
logger.info("before ao.create");
IP pi = ao.create(enclass);
....
pi.save();
return pi;
}
});
@Table("IP")
@Preload
public interface IP extends Entity {
@Accessor("issues")
String getIssues();
@Mutator("issues")
void setIssues(String issues);
@Accessor("planStartTime")
Date getPlanStartTime();
@Mutator("planStartTime")
void setPlanStartTime(Date planStartTime);
@Accessor("planEndTime")
Date getPlanEndTime();
@Mutator("planEndTime")
void setPlanEndTime(Date planEndTime);
@Accessor("user")
String getUser();
@Mutator("user")
void setUser(String user);
}
我的实体如下所示:
ao.find(IP.class, Query.select().where("user=? AND start>=? AND end<=?",u,datefieldl,datefieldl))
IP pi = ao.executeInTransaction(new TransactionCallback() // (1)
{
@Override
public IP doInTransaction()
{
logger.info("before ao.create");
IP pi = ao.create(enclass);
....
pi.save();
return pi;
}
});
@Table("IP")
@Preload
public interface IP extends Entity {
@Accessor("issues")
String getIssues();
@Mutator("issues")
void setIssues(String issues);
@Accessor("planStartTime")
Date getPlanStartTime();
@Mutator("planStartTime")
void setPlanStartTime(Date planStartTime);
@Accessor("planEndTime")
Date getPlanEndTime();
@Mutator("planEndTime")
void setPlanEndTime(Date planEndTime);
@Accessor("user")
String getUser();
@Mutator("user")
void setUser(String user);
}
有什么想法吗
意外标记:END in语句
看看你的情况:
"user=? AND start>=? AND end<=?"
这里的问题是,当生成最终SQL查询时,它的语法无效。这就是为什么会出现异常。如果我删除最后一个参数-“endI hve updated start and end with-“planStartTime”和“planndtime”。现在,我的实体如下:@Preload public interface IP extensed entity{Date getplanstartime();void setplanstartime(Date planstartime);Date getPlanEndTime();void setPlanEndTime(Date planEndTime);String getUser();void setUser(String user);}执行查询时,它会给我列未找到错误-“列未找到:语句中的PLANSTARTTIME”[从PUBLIC.AO_0371A8_IP中选择*其中用户=?和计划开始时间>=?和planEndTime@Dhaval您是如何注释这些列的?另外,您是否重新生成了架构或自己更新了列名?数据库表必须使用以前的列名(由提供商或您生成)而过时这就是它找不到新属性的原因。我刚刚将实体接口的属性重命名为“getStart()”为“getPlanStartTime()”,“setStart()”为“SetPlantTime()”,而“end”也是如此。以及我创建实体并使用的rest服务中的相关更改。实际上,我通过以下内容创建了此表:我已更新原始问题以包含创建查询内容。检索到的对象的属性如下-“@xmltribute private Date planStartTime;@xmltribute private Date planndtime;”我已经通过添加注释属性更新了实体字段——如上面更新的原始注释所示的访问器和变异器。实际上,保存和“检索所有”方法都可以正常工作。但是这个查询给我的错误是“未找到列:语句中的PLANSTARTTIME”[从PUBLIC.AO_0371A8_IP中选择*其中用户=?和计划开始时间>=?以及计划开始时间