Hibernate - Problem mit double/float

y0dA

Erfahrenes Mitglied
Ich bekomme immer eine ORA-01438 Errormeldung wenn ich versucht einen Satz zu inserten! Ich habe hierbei 2 double Felder welche bspw folgenden Inhalt besitzen:
Code:
1.9E-4
Da meine Tabellenspalten aber eh 5 Nachkommastellen fassen können verstehe ich hierbei das Problem nicht, oder versucht Hibernate diese Zahl als "1.9E-4" zu inserten und nicht als 1,00009 ?

Fehlermeldung:
Code:
Caused by: java.sql.BatchUpdateException: ORA-01438: Wert größer als die angegebene Gesamststellenzahl, die für diese Spalte zulässig ist

tabellenstruktur:
Code:
CREATE TABLE GPS_TOURS (
       GT_ID NUMBER(25,0) CONSTRAINT pk_gps_tour PRIMARY KEY,
       GT_TOUR_ID NUMBER(25,0),
       GT_TOUR_DESCRIPTION VARCHAR2(50),
       GT_START TIMESTAMP,
       GT_END TIMESTAMP,
       GT_DISTANCE NUMBER(5, 5),
       GT_AVERAGE_SPEED NUMBER(3,5),
       GT_GEOM MDSYS.SDO_GEOMETRY
);

mapping:
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="at.pcd.wam.technologie.persistence.model">
	<class name="at.pcd.wam.technologie.persistence.model.GPSToursModel"
		table="gps_tours">

		<!-- primary key -->
		<id name="id" type="integer" column="GT_ID">
		<!-- id get set by oracle sequence GPS_TOURS_SEQ -->
		<generator class="increment" />
		</id>

		<property name="end" type="timestamp" column="GT_END" />
		<property name="geom" type="at.pcd.wam.technologie.persistence.custom.type.JGeometryType" column="GT_GEOM" />
		<property name="start" type="timestamp" column="GT_START" />
		<property name="tourDescription" type="string" column="GT_TOUR_DESCRIPTION" />
		<property name="tourId" type="integer" column="GT_TOUR_ID" />
		<property name="averageSpeed" type="double" column="GT_AVERAGE_SPEED" />
		<property name="distance" type="double" column="GT_DISTANCE" />

	</class>
</hibernate-mapping>

insert:
Code:
public static void insertGPSToursModel(final List<GPSToursModel> list) {
		Session session = HibernateUtil.getCurrentSession();
		Transaction tx = null;
		try {
			tx = session.beginTransaction();	
			for (GPSToursModel model : list) {
				/* insert */
				session.save(model);
			}	
			/* commit and close session */
			tx.commit();	
		} catch (Exception e) {
			if (tx != null) {
				tx.rollback();
				e.printStackTrace();
			}
		} finally {
			session = null;
			tx = null;
		}
	}

**EDIT**
Ich bekomme die Fehlermeldung auch, wenn ich für die beiden double werte schlicht 1 setze.
 
Zuletzt bearbeitet:
Zurück