我有一个问题与mybatis注释查询以下错误。
组织。阿帕奇。伊巴蒂斯。结合BindingException:未找到参数“strDateStart”。可用参数为[0,1,param1,param2]
下面是mapper类中的代码。
`@Select("SELECT * FROM Result WHERE"AND proc_date >= '#{strDateStart}'"+
"AND proc_date >= '#{strDateEnd}'"+
"AND update_date <= '#{strDateStart}'"+
"AND update_date <= '#{strDateEnd}'")
public ArrayList<ResultDao> select(String strDateStart,String strDateEnd);`
与query中的参数和method中的args使用相同的名称,我可以在具有相同参数的条件中多次使用吗?
我使用@SelectProvider设置参数映射,这对我来说很有用:
映射器类:
@SelectProvider(type = MyBatisSqlProvider.class, method = "getSqlString")
public List<Map<String, Object>> select(@Param("sql") String sqlString, @Param("sqlParams") Map<String, Object> sqlParams);
提供程序类:
String sqlString = (String) params.get(SQL_PATH);
Map<String, Object> sqlParams = (Map<String, Object>) params.get(SQL_PARAM);
if (sqlParams != null) {
params.putAll(sqlParams);
}
return sqlString;
我的桌子:
create table TBLSAMPLE (id int primary key auto_increment, name varchar, name1 varchar);
insert into TBLSAMPLE (name,name1) values ('test','test');
insert into TBLSAMPLE (name,name1) values ('test','test');
insert into TBLSAMPLE (name,name1) values ('test','test');
insert into TBLSAMPLE (name,name1) values ('test','test');
insert into TBLSAMPLE (name,name1) values ('qa','test');
并使用sql进行测试:从TBLSAMPLE中选择*,其中name=#{name}和name1=#{name}
你试过这个吗?
@Select(“从结果中选择*”和过程日期
这个问题通过
1解决了。删除变量#{strDateXXXX}
2周围的单引号。为该条件创建一个类,如下代码所示。
`public class SelectConditions {
String strDateStart;
String strDateEnd;
public String getStrDateStart() {
return strDateStart;
}
public void setStrDateStart(String strDateStart) {
this.strDateStart = strDateStart;
}
public String getStrDateEnd() {
return strDateEnd;
}
public void setStrDateEnd(String strDateEnd) {
this.strDateEnd = strDateEnd;
}
public SelectConditions(String strDateStart, String strDateEnd) {
this.strDateStart = strDateStart;
this.strDateEnd = strDateEnd;
}`
3.通过传递条件类来更改映射器类
`@Select("SELECT * FROM Result WHERE"AND proc_date >= #{strDateStart}"+
"AND proc_date >= #{strDateEnd}"+
"AND update_date <= #{strDateStart}"+
"AND update_date <= #{strDateEnd}")
public ArrayList select(SelectConditions conditions)`
我试图使用jpa组件来选择从标题中获取的id。我在文档中找到了一个使用本机select查询的示例: 我试图用${header.id}替换“1”常量: 这似乎不管用,我明白了: 也许还有别的方法可以让它发挥作用?
这是我的映射器 我拥有的firmDBName是从我的“主数据库”中获得的。 > 如果我在第二个查询中省略了${firmDBName},则该查询试图访问我的主数据库,并抛出表“primarydb.frm_dealer_type”未找到。因此,它基本上是试图在我的主数据库中搜索一个名为“frm_dealer_type”的表。 如果我尝试重写@result null 我想要一个解决方案来将我的参数fir
我想通过JDBC向Oracle DB发送一个准备好的语句SQL查询,如下所示: 只有在我提供3次时才起作用,但我不想这样做,我更希望调整准备好的语句的SQL,以便只使用一个但将其应用于所有条件。类似于 但这种尝试似乎并不奏效。有没有办法在SQL字符串中多次使用一个准备好的语句参数? 在@selvin的善意建议之后,我为准备好的语句使用了以下SQL字符串: 然后,我得到错误“ORA-06550:第1
问题内容: 使用Hibernate时,有什么方法可以在命名查询中指定可选参数(例如,从表单提供搜索参数而并非所有参数都是必需的)?我正在使用本机SQL查询,但该问题可能也适用于命名HQL查询。 我很确定对此的答案是“否”,但是我还没有在文档中找到确切的答案。 问题答案: AFAIK,没有这样的事情,因此您必须为此编写一个动态查询。也许看一下以前的答案,该答案显示了如何在HQL中执行此操作(您可以将
我有一个本机查询要在Spring的@Query注释中使用。问题是我无法为LIMIT AND INTERVAL等非标准子句传递参数。 1) 是否可以在注释中传递限制参数。2) JPA中的程序等价物是什么。它有可以使用的查询接口吗? 此外,不会为每个查询更改limit和interval子句,但应该在jvm启动时设置。
在下面的代码中,我有时会将设置为null。此时,它抛出错误为“could not extract resultset;SQL[n/a];嵌套异常为org.hibernate.exception.sqlgrammarexception:could not extract resultset” 即使为空,我如何获取数据。总有一天约会就要来了。这是怎么做的? null