如何使用 BindBeans 将字符串列表输入到 sql
How to input list of string to a sql using BindBeans
出于某种原因,我不能使用 BindIn,但必须使用 BindBeans 为 in 子句传入字符串值列表。我在下面,但似乎无法按我想要的方式传递类型。有什么建议吗?
*MyFilter {
private final String Types;
private final Timestamp Date;
public MyFilter (){
this.Types = "A','B"
THIS.Date = now();
}
}
@SqlQuery("select * from table where type in (:Types) and date = :Date ")
public abstract List<xx> get(@BindBean MyFilter filter);*
你应该可以用@BindIn 做到这一点:
@SqlQuery("select * from table where type in (<types>) and date = :Date")
public abstract List<xx> get(@BindIn List<String> filter);
要使 @BindIn
正常工作,您还需要将 @UseStringTemplate3StatementLocator
添加到您的访问权限 class。 JDBI 需要这个
您可能还需要添加此依赖项:
<dependency>
<groupId>org.antlr</groupId>
<artifactId>stringtemplate</artifactId>
<version>3.2.1</version>
</dependency>
这里有点相关post:
如果您想要 SQL 的一些动态部分,您可以使用字符串模板。
@UseStringTemplate3StatementLocator
public abstract class MyDAO {
@SqlQuery("select * from table where type in (<types>) and date = :Date ")
public abstract List<xx> get(@Define("types") String types);
....
您将需要添加此依赖项:
<dependency>
<groupId>org.antlr</groupId>
<artifactId>stringtemplate</artifactId>
<version>3.2</version>
</dependency>
就我而言,它对动态排序非常有用。希望这有帮助。
出于某种原因,我不能使用 BindIn,但必须使用 BindBeans 为 in 子句传入字符串值列表。我在下面,但似乎无法按我想要的方式传递类型。有什么建议吗?
*MyFilter {
private final String Types;
private final Timestamp Date;
public MyFilter (){
this.Types = "A','B"
THIS.Date = now();
}
}
@SqlQuery("select * from table where type in (:Types) and date = :Date ")
public abstract List<xx> get(@BindBean MyFilter filter);*
你应该可以用@BindIn 做到这一点:
@SqlQuery("select * from table where type in (<types>) and date = :Date")
public abstract List<xx> get(@BindIn List<String> filter);
要使 @BindIn
正常工作,您还需要将 @UseStringTemplate3StatementLocator
添加到您的访问权限 class。 JDBI 需要这个
您可能还需要添加此依赖项:
<dependency>
<groupId>org.antlr</groupId>
<artifactId>stringtemplate</artifactId>
<version>3.2.1</version>
</dependency>
这里有点相关post:
如果您想要 SQL 的一些动态部分,您可以使用字符串模板。
@UseStringTemplate3StatementLocator
public abstract class MyDAO {
@SqlQuery("select * from table where type in (<types>) and date = :Date ")
public abstract List<xx> get(@Define("types") String types);
....
您将需要添加此依赖项:
<dependency>
<groupId>org.antlr</groupId>
<artifactId>stringtemplate</artifactId>
<version>3.2</version>
</dependency>
就我而言,它对动态排序非常有用。希望这有帮助。