是否可以使用JPA注释将布尔变量绑定到MySQL中的VARCHAR(1)Y / N?
我正在使用以下映射@Basic
@Column(name = "IS_ACTIVE", columnDefinition = "VARCHAR", length = 1)
private Boolean active;
抛出异常
java.lang.IllegalArgumentException: Parameter value [A] did not match expected type [java.lang.Boolean (n/a)]
所以我弄清楚了错误的原因,那是因为我正在过去' Y'作为命名查询的参数。
params.put("isActive", "Y");
但现在我把它改成了
params.put("isActive", Boolean.TRUE);
查询没有返回任何结果,似乎它已经过了真正的'作为查询的参数。
有人可以告诉我如何正确地映射这个吗?
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-all-6.0</artifactId>
<version>3.0.0.Final</version>
<scope>provided</scope>
</dependency>
答案 0 :(得分:2)
最安全的方法是定义一个AttributeConverter
,它将Boolean映射到String并映射到&#34; Y&#34;或&#34; N&#34;。然后定义您的布尔字段以使用AttributeConverter
。