[Hibernate求助]如何構造自己的對映型別?
我在資料庫中儲存的欄位是TINYINT型別,想對映成java類中的Boolean(或者boolean)物件。我看了hibernate文件的4.2.4. Custom value types節,並自己寫了擴充套件了UserType類,如下:
還沒有測試,因為有一點疑問,這個類中,並沒有什麼方法表明資料庫中儲存的TINYINT值怎麼轉換成對應的Boolean物件,我自然是想資料庫中儲存1時轉換成TRUE,儲存0時轉換成FALSE。但在這個類中並沒有什麼方法申明啊。不知道如何解決這個問題。
另外,如果想把TINYINT列對映成java的原始型別boolean,又該如何解決。
想了很久,一直沒有弄出來,請大家幫忙看看,謝謝!
/** * 從java物件Boolean到sql中的TINYINT的對映 */ public class BooleanMappingType implements UserType { private static final int [] TYPE = {Types.TINYINT}; public int[] sqlTypes() { return TYPE; } public Class returnedClass() { return Boolean.class; } public boolean equals(Object x, Object y) throws net.sf.hibernate.HibernateException { if( x.equals(y) ) return true; if( x == y) return true; return false; } public Object nullSafeGet(ResultSet rs, String[] names, Object owner) throws net.sf.hibernate.HibernateException, java.sql.SQLException { Byte b = (Byte)Hibernate.BYTE.nullSafeGet(rs, names[0]); if( b == null) return Boolean.FALSE; if(b.intValue() != 0) return Boolean.TRUE; return Boolean.FALSE; } public void nullSafeSet(PreparedStatement psmt, Object value, int index) throws net.sf.hibernate.HibernateException, java.sql.SQLException { Boolean b = (value == null) ? Boolean.FALSE : (Boolean)value; Hibernate.BYTE.nullSafeSet(psmt, b, index); } public Object deepCopy(Object x) throws net.sf.hibernate.HibernateException { if(x.equals(Boolean.TRUE)) return new Boolean(true); if(x.equals(Boolean.FALSE)) return new Boolean(false); return null; } public boolean isMutable() { return true; } } <p class="indent"> |
還沒有測試,因為有一點疑問,這個類中,並沒有什麼方法表明資料庫中儲存的TINYINT值怎麼轉換成對應的Boolean物件,我自然是想資料庫中儲存1時轉換成TRUE,儲存0時轉換成FALSE。但在這個類中並沒有什麼方法申明啊。不知道如何解決這個問題。
另外,如果想把TINYINT列對映成java的原始型別boolean,又該如何解決。
想了很久,一直沒有弄出來,請大家幫忙看看,謝謝!
相關文章
- Hibernate 對映xml中的屬性型別XML型別
- HIBERNATE的自定義型別主鍵的對映??型別
- 如何使用Java泛型對映不同的值型別Java泛型型別
- TypeScript 對映型別TypeScript型別
- Hibernate繼承對映多型的詳解繼承多型
- TypeScript 之對映型別TypeScript型別
- Redis - 資料型別對映底層結構Redis資料型別
- hibernate 元件對映元件
- EF:自定義Oracle的對映型別Oracle型別
- EF:oracle的number型別對映為C#的boolean型別Oracle型別C#Boolean
- Guru of the week:#17 型別對映. (轉)型別
- elasticsearch的object型別和動態對映ElasticsearchObject型別
- LocalSessionFactoryBean載入Hibernate 對映的幾種方式及區別SessionBean
- Hibernate--繼承對映繼承
- Hibernate 的關聯關係對映
- hibernate對映合成模式的問題模式
- 搞懂 TypeScript 中的對映型別(Mapped Types)TypeScript型別APP
- hibernate(五) hibernate一對一關係對映詳解
- Hibernate【對映】知識要點
- hibernate(三) 一對多對映關係
- hibernate物件對映的一個問題。物件
- Generic:型別和值之間的對映 (轉)型別
- Hibernate annotation, JPA如何對映多個屬性為unique
- HIBERNATE的對映---資料庫表中欄位和對應持久化類中屬性都是自定義型別的?資料庫持久化型別
- C#例項構造器,型別構造器 -筆記型別筆記
- TypeScript 官方手冊翻譯計劃【十】:型別操控-對映型別TypeScript型別
- Hibernate--單表對映總結
- hibernate 繼承對映關係( JOINED)繼承
- Sybase datetime型別對映為Oracle timestamp型別Oracle
- hibernate(四) 雙向多對多對映關係
- Hibernate對映檔案一對多關係薦
- SAP SEGW 事物碼裡的 ABAP 型別和 EDM 型別對映的一個具體例子型別
- 本地方法怎麼對映Java層的資料型別Java資料型別
- NHibernate VS .NET Type VS DbType 的型別對映關係型別
- SqlServer與.NET的資料型別對映關係圖(轉)SQLServer資料型別
- Hibernate (開源物件關係對映框架)物件框架
- Hibernate對檢視對映,當檢視中有空欄位的時候如何解決?
- 【C++】構造資料型別--陣列C++資料型別陣列