Hi,
J'ai déjà fait des mappings de types Jave - base de données, mais je ne connais pas Hibernate. Si je comprends bien, tu as un mappage à faire {types Java}--->{types Oracle}. Est-ce que cette fonction de mappage:
- doit être surjective ? (Tous les types Java mappés vers Oracle)
- doit être injective ? (Chaque type Java mappé vers son propre type Oracle)
- doit avoir une inverse ? Si oui, est-ce que son inverse soit être surjective/injective?
En fonction des réponses à ces questions, les solutions sont différentes.
Sinon, il y a bel et bien un type FLOAT sous Oracle:
Oracle Database also supports the ANSI datatype FLOAT. You can specify this datatype using one of these syntactic forms:
FLOAT
FLOAT(n)
The number n indicates the number of bits of precision that the value can store. The value for n can range from 1 to 126. To convert from binary to decimal precision, multiply n by 0.30103. To convert from decimal to binary precision, multiply the decimal precision by 3.32193. The maximum of 126 digits of binary precision is roughly equivalent to 38 digits of decimal precision.
(Source: http://download-east.oracle.com/... ) Dans le passage précédent, on t'explique également les règles de passage d'une précision décimale à une précision binaire.
Concernant tes mappages proposés:
NUMBER(8) --> int est presque correct (on peut stocker des milliards dans un entier, donc NUMBER(9) --> int serait encore mieux).
NUMBER --> BigDecimal n'est pas correct non plus (car on peut stocker des nombre à virgule flottante dans NUMBER)
Quant au mappage BINARY_FLOAT --> serializable: ça ne veut rien dire (Serializable n'est pas un type de données dans Java)
++