Какой тип столбца PostgreSQL следует использовать для хранения Java BigDecimal?
Какой тип столбца PostgreSQL следует использовать для хранения Java BigDecimal?
Ответ 1
См. Типы данных PostgreSQL - возможно Numeric, который может действовать как произвольный тип точности (это расширение PostgreSQL).
... без какой-либо точности или масштабирования создается столбец, в котором могут храниться числовые значения любой точности и масштаба, вплоть до предела реализации по точности.
Я не совсем уверен, что такое "предел реализации по точности". Никогда не пробовали действительно большие цифры. Если предел достигнут, тогда возможен возврат к text
. Но я подозреваю, что до этого будут значительные другие проблемы;-) Если вы хотите сохранить меньше, то укажите точность и/или масштаб на numeric
.
Изменить, как указано sjr, ограничение составляет 1000 десятичных цифр точности (из той же ссылки):
Тип numeric может хранить числа с точностью до 1000 цифр точности [в реализациях currentl] и выполнять вычисления точно. Он особенно рекомендуется для хранения денежных сумм и других величин, где требуется точность...
Если требуется больше точности - несмотря на то, что у вас гораздо большая проблема, тогда числовой столбец не будет подходящим (сам по себе). Но это действительно более экстремальное "что, если" и, вероятно, не играет предельной роли.
Ответ 2
Просто используйте сопоставления Java для общих типов данных SQL. В этом случае вы можете использовать NUMERIC или DECIMAL.