2

Firebird 2.0で実行されている古いデータベースがあり、SmallInt列をブール型にマップする必要があります。ブール型は、の場合SmallInt = 0は。 FalseSmallInt = 1の場合はTrueです。

また、これはHibernateAnnotationsを使用して行う必要があります。

Hibernate3.6を使用しています。

任意のヒント?

前もって感謝します。

4

1 に答える 1

5

もう少し検索した後、http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/types.html#types-value-basicorg.hibernate.type.NumericBooleanTypeでこの休止状態のタイプを見つけることができました

そして、私はこのようにマッピングしようとしました:

@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean field;

しかし、Hibernateがこの例外をスローしたため、これは機能しませんでした。

org.hibernate.HibernateException: Wrong column type in %TABLE_NAME% for column %COLUMN_NAME%. Found: smallint, expected: integer

そこで、この列の定義を強制して、次のようにマッピングしようとしました。

@Column(columnDefinition = "SMALLINT")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean field;

そして今、これは魅力のように機能します。

于 2012-07-31T15:14:56.290 に答える