2016-04-19 18 views
0

JPAアノテーションを使用してMySQLでブール型変数をVARCHAR(1)Y/Nにバインドすることはできますか?私はマッピング@Basic @Column(name = "IS_ACTIVE", columnDefinition = "VARCHAR", length = 1) private Boolean active;例外JPAでY Nをブール型にバインドする方法

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> 

答えて

2

最も安全な方法は、Stringにブールをマップし、それが「Y」または「N」にマップAttributeConverterを定義することです。次に、ブール値フィールドを定義して、AttributeConverterを使用します。

+0

@Convertは利用できませんこれは一部のライブラリですか? –

+0

標準のJPA 2.1の一部です。そのリンク先のページは –

+0

です。私はjboss 6 EAPを使用しています。これはすべてが必要です。更新された投稿をmaven依存関係でチェックしてください。これには必要な依存関係が含まれていませんか? –

関連する問題