2012-04-01 64 views
0

我應該在我的java模型中爲PostgreSQL貨幣類型定義什麼類型的數據?將PostgreSql貨幣數據類型映射到ORMLite

我知道我可以使用BigDecimal,但它映射到PostgreSQL上的varchar(255)。

+2

不要在Postgres中使用money數據類型 - 使用'decimal'來代替。錢類型有很多問題(例如,它依賴於語言環境,因此可能會在不同的計算機上引入問題,例如,請參見:http://archives.postgresql.org/pgsql-jdbc/2011-11/msg00108.php)。永遠不要在字符列中存儲數字。 – 2012-04-01 18:33:52

回答

1

我認爲@ a_horse的評論提供了一些很好的信息,但我想我會添加一些額外的ORMLite's具體細節。

你可以使用ORMLite的BIG_DECIMAL_NUMERIC這將存儲在Postgres爲NUMERIC。您需要將其指定爲:

@DatabaseFiled(dataType = BIG_DECIMAL_NUMERIC) 
BigDecimal number; 

如果您使用金錢類型設置,那麼您可以定義您自己的自定義持票人。您可以在文檔日期一看就是前:

http://ormlite.com/docs/custom-persister

還有與代碼示例項目,顯示瞭如何定義一個數據留存您的自定義類型:

http://ormlite.com/docs/data-persister-example

+0

使用@DatabaseField(dataType = DataType.BIG_DECIMAL_NUMERIC)很適合將BigDecimal映射到數字...我想我只會使用BigDecimal。 – technomage 2012-04-03 00:33:23

相關問題