Después de pasar por el tren de falla del desarrollo previo, me di cuenta de que tenía que mover todas las columnas basadas en dinero para no usar matemáticas de coma flotante. En el lado de Java, esto significa usar BigDecimal, pero al usar Hibernate/JPA y MySQL 5, ¿cuál sería el tipo de datos MySQL apropiado para hacer esa columna?¿Qué tipo de mapas asignarías a BigDecimal en Java/Hibernate en MySQL?
Respuesta
DECIMAL y NUMERIC.
La asignación de Java recomendada para los tipos DECIMAL y NUMERIC es java.math.BigDecimal. El tipo java.math.BigDecimal proporciona operaciones math para permitir que los tipos BigDecimal se agreguen, restan, multiplicados y se dividen con otros tipos BigDecimal, con tipos enteros, y con tipos de coma flotante.
El método recomendado para recuperar valores DECIMAL y NUMERIC es ResultSet.getBigDecimal. JDBC también permite el acceso a estos tipos SQL como cadenas simples o matrices de caracteres. Por lo tanto, los programadores de Java pueden usar getString para recibir un resultado DECIMAL o NUMERIC. Sin embargo, esto hace que sea el caso común donde DECIMAL o NUMERIC se usan para valores monetarios bastante torpes, ya que significa que los escritores de aplicaciones tienen que realizar operaciones matemáticas en cadenas. También es posible recuperar estos tipos de SQL como cualquiera de los tipos numéricos de Java.
Eche un vistazo a here para más detalles.
- 1. ¿Puedo usar BigDecimal como tipo de identificación en Hibernate hbm?
- 2. BigDecimal no se puede forzar en BigDecimal
- 3. BigDecimal Problema en java
- 4. cast Long a BigDecimal
- 5. serialización BigDecimal en GWT
- 6. BigDecimal en Java
- 7. CREAR TIPO en MySQL
- 8. ¿Por qué BigDecimal ("5.50") no es igual a BigDecimal ("5.5") y cómo evitar este problema?
- 9. Convertir doble a BigDecimal y establecer BigDecimal Precision
- 10. Convertir BigDecimal en Integer
- 11. ¿Qué tipo de datos usar en MySQL para almacenar imágenes?
- 12. Cómo convertir BigInteger a BigDecimal?
- 13. Cómo restablecer BigDecimal a cero
- 14. Cómo convertir Double.POSITIVE_INFINITY a BigDecimal?
- 15. ¿Por qué Java BigDecimal devuelve 1E + 1?
- 16. Cómo convertir de float a bigDecimal en java?
- 17. Recorte Más de dos ceros a la derecha en BigDecimal
- 18. Extraer número decimal en BigDecimal
- 19. tipo de datos a la tienda longitud/latitud en MySQL
- 20. Mapas infinitos en Haskell
- 21. cómo convertir Cadena de porcentaje a BigDecimal?
- 22. BigDecimal es igual a() frente compareTo()
- 23. ¿Qué tipo de columna PostgreSQL se debe usar para almacenar un Java BigDecimal?
- 24. alternativa a los mapas
- 25. Comparación de BigDecimal e int en Java
- 26. Fusionar mapas en Go
- 27. Uso de recopilación en mapas en Scala
- 28. ¿Cómo echo un tipo a bigint en MySQL?
- 29. Lambdas en Mapas
- 30. Scale() del método Divide en BigDecimal
Enlace actualizado: http://docs.oracle.com/javase/1.5.0/docs/guide/jdbc/getstart/mapping.html – borjab