マッピング ファイル内のブール プロパティの定義を変更してみてください。
<property name="someBoolean" column="SOME_COLUMN" type="true_false"></property>
または、注釈を使用している場合は、これを追加します。
@Type(type="true_false")
デフォルトでは、hibernate は boolean プロパティを CHAR(1) ではなく BIT としてマップするため、これが役立つはずです。そのため、このような問題が発生していると思います。( hibernate mapping typesを見てください)。
編集:
SQLQuery を使用してブール値を選択する必要がある場合 (エンティティのフィールドとしてではなく、分離された値として)、次のようなアプローチを使用できます。
SQLQuery q = session.createSQLQuery("SELECT FALSE a, TRUE b;");
q.addScalar("a", new TrueFalseType());
q.addScalar("b", new TrueFalseType());
Object[] result = (Object[]) q.uniqueResult();
この場合に見られるように、取得した値の型を明示的に定義して、hibernate が正しく変換できるようにする必要があります。私はこのアプローチを MySQL でテストしましたが、すべてが機能しています ( MySQL はブール値を 1/0 として扱うため、私の場合は型BooleanType()を指定したことを除いて)。
Hibernate は 3 つのブール形式を使用します。
1) "Y/N" -> CHAR(1) ansi sql タイプ -> "yes_no" hibernate タイプ -> YesNoType クラス;
2) "T/F" -> CHAR(1) -> "true_false" hibernate タイプ -> TrueFalseType クラス;
3) "1/0" -> BIT ansi sql タイプ -> "boolean" hibernate タイプ -> BooleanType クラス。
そのため、DB の正しい型を選択する必要があります (私が理解し、例で書いたように、TrueFalseTypeを使用する必要があります)。