Beste mede-tweakers,
Ik probeer in Java doormiddel van de persistence manager van Datanucleus 4.1 een BigInteger object op te slaan in een MySQL database.
Dit lukt echter niet omdat de persistence manager besluit een BigInteger te mappen naar een NUMERIC veld in MySQL.
Dit veld krijgt standaard een precisie van 10 waardoor ik maximaal 10 getallen voor de komma kan opslaan. Echter probeer ik de modulus van een RSAPublicKey op te slaan welke een precisie van ~600 vereist.
Volgens de documentatie van MySQL kan een NUMERIC veld een maximale precisie van 65 hebben dus dit is sowieso geen optie.
Nu blijkt er volgens de Javadoc een BigIntegerStringConverter te bestaan. Echter kan ik nergens vinden hoe ik in de code kan aangeven dat ik deze converter wil gebruiken.
In de documentatie spreekt men wel over het maken van een custom type converter maar ik maak natuurlijk liever gebruik van de ingebouwde variant.
Ik heb geen eerdere ervaring met Datanucleus dus waarschijnlijk maak ik een hele basale fout maar ik zie momenteel door de bomen het bos niet meer
.
Ik heb het forum doorzocht maar kwam geen vergelijkbare topics tegen. Hopelijk kunnen jullie mij in de goede richting wijzen. Alvast bedankt!
Ik probeer in Java doormiddel van de persistence manager van Datanucleus 4.1 een BigInteger object op te slaan in een MySQL database.
Dit lukt echter niet omdat de persistence manager besluit een BigInteger te mappen naar een NUMERIC veld in MySQL.
SQL:
1
2
3
4
5
6
7
8
| Creating table `GENERICKEY` CREATE TABLE `GENERICKEY` ( `ID` BIGINT NOT NULL, `EXPONENT` NUMERIC NULL, `MODULES` NUMERIC NULL, CONSTRAINT `GENERICKEY_PK` PRIMARY KEY (`ID`) ) ENGINE=INNODB |
Dit veld krijgt standaard een precisie van 10 waardoor ik maximaal 10 getallen voor de komma kan opslaan. Echter probeer ik de modulus van een RSAPublicKey op te slaan welke een precisie van ~600 vereist.
Volgens de documentatie van MySQL kan een NUMERIC veld een maximale precisie van 65 hebben dus dit is sowieso geen optie.
Nu blijkt er volgens de Javadoc een BigIntegerStringConverter te bestaan. Echter kan ik nergens vinden hoe ik in de code kan aangeven dat ik deze converter wil gebruiken.
In de documentatie spreekt men wel over het maken van een custom type converter maar ik maak natuurlijk liever gebruik van de ingebouwde variant.
Ik heb geen eerdere ervaring met Datanucleus dus waarschijnlijk maak ik een hele basale fout maar ik zie momenteel door de bomen het bos niet meer

Ik heb het forum doorzocht maar kwam geen vergelijkbare topics tegen. Hopelijk kunnen jullie mij in de goede richting wijzen. Alvast bedankt!