Я пытаюсь сохранить SHA256 ha sh как числовое значение, что кажется оптимальным способом сделать это из пробела и индексации POV. Я использую JPA с простым определением поля:
@NonNull
private BigInteger mybiginteger;
Однако он отказывается вставлять значение.
Я использую базу данных H2 во время модульных тестов, и теперь, когда я 'Я добавил значение BigInteger в JPA, это не удается
Caused by: org.h2.jdbc.JdbcSQLDataException: Value too long for column "MYBIGINTEGER DECIMAL(19, 2)": "-12804752987762098394035772686106585063470084017442529046078187006797464553387.00 (79)"; SQL statement:
Пропуск тестовых случаев и попытка его с помощью Postgres также не удается с
Caused by: org.postgresql.util.PSQLException: ERROR: numeric field overflow
Detail: A field with precision 19, scale 2 must round to an absolute value less than 10^17.
JPA создал это как число Поле c (19,2) согласно инструментам БД. Я могу вручную изменить определение столбца, и оно работает, но не как сделать его переносимым между H2 и PSQL.
Как правильно сохранить BigInteger в базе данных H2 / PSQL с помощью JPA? Кроме того, почему он позволяет использовать два десятичных знака для типа BigInteger?