2016-08-08 15 views
0

Ich lade eine Liste von Entitäten von und die Liste enthält alle Einträge meiner Tabelle außer denen mit einem negativen Wert;Kann Entität mit negativem Doppel im Hibernate nicht abrufen

@Table(name = "amounts") 
public class Amounts implements Serializable { 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "id") 
    private long id; 

    @Column(name = "payment_id") 
    private long payment_id; 


    @Column(name = "amount",length = 10,precision = 2) 
    private Double amount; 

    //getters and setters 
} 

I definierte die Länge und precission es genau wie meine Tabelle aber kein Eintrag mit einem negativen Wert im Betragsfeld (-1400,00, -10.50 usw.) geladen passen.

Wie kann ich das lösen?

Ich habe versucht, die primitiven Doppel-und Doppel, mit und ohne Präzission.

Antwort

1

Sie müssen zuerst das Schema Ihrer Tabelle überprüfen tatsächlich eine Spalte verwendet, die auch ermöglicht, für negative Werte (FLOAT, DOUBLE)

das length Element der Spalte Anmerkung nur dann, wenn eine Zeichenfolge bewertet Spalte gilt wird verwendet. Sie sollten die stattdessen folgende verwenden:

@Column(precision=10, scale=2) 
+0

Meine Tabelle sind die negativen Werte ohne Fehler speichert, wenn i Ebene JDBC verwenden, um die Einträge zu bekommen es alle Einträge abrufen richtig, aber mit persistance (Hibernate und javax persistance) es tut Geben Sie keine Einträge mit negativen numerischen Werten zurück. In meiner Datenbank sind die Werte in Dezimal (10,2) signiert – UrielUVD

+0

Bereits im Mapping-Modell versucht Java BigDecimal, aber das Ergebnis ist das gleiche – UrielUVD