0
Hibernateを使用してCSVファイルをインポートしようとしていますが、すでに最初の行にNumberFormatExceptionがあります。これは私のスクリプトです:Hibernate Textテーブル私にNumberFormatExceptionを与えるテーブル
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE TEXT TABLE TKONTAKTE(KNUMMER INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,KVORNAME VARCHAR(255) NOT NULL,KNACHNAME VARCHAR(255) NOT NULL,KSTRASSENUMMER VARCHAR(255) NOT NULL,KPOSTLEITZAHLORT VARCHAR(255) NOT NULL,KGEBURTSDATUM DATE,KNOTIZ LONGVARCHAR,KMAENNLICH CHAR(1) NOT NULL,KEMAIL VARCHAR(255) NOT NULL,CONSTRAINT SYS_CT_46 UNIQUE(KVORNAME,KNACHNAME))
SET TABLE TKONTAKTE SOURCE "Kontakte.csv;fs=\semi;ignore_first=true"
ALTER TABLE TKONTAKTE ALTER COLUMN KNUMMER RESTART WITH 1
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET WRITE_DELAY 10
そして、これは私の設定です:Kontakt.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="net.gobbz.kontakte.model">
<class name="Kontakt" table="tkontakte">
<id name="nummer" column="knummer">
<generator class="native"/>
</id>
<properties name="vornameNachname" unique="true">
<property name="vorname" column="kvorname"
type="string" not-null="true"/>
<property name="nachname" column="knachname"
type="string" not-null="true"/>
</properties>
<property name="strasseNummer" column="kstrasseNummer"
type="string" not-null="true"/>
<property name="postleitzahlOrt" column="kpostleitzahlOrt"
type="string" not-null="true"/>
<property name="geburtsdatum" column="kgeburtsdatum" type="date"/>
<property name="notiz" column="knotiz" type="text"/>
<property name="maennlich" column="kmaennlich" type="yes_no" not-null="true"/>
<property name="email" column="kemail" type="string" not-null="true"/>
</class>
</hibernate-mapping>
ここ
11:53:57,813 WARN JDBCExceptionReporter:48 - SQL Warning: -98, SQLState: S1000
11:53:57,813 WARN JDBCExceptionReporter:49 - bad TEXT table source file - line number: 1 java.lang.NumberFormatException: For input string: "Petra;Pichler;Kennedystr. 279;39055 Leifers;19.04.1988;;FALSCH;[email protected]"
11:53:57,875 DEBUG SQL:346 - insert into tkontakte (kvorname, knachname, kstrasseNummer, kpostleitzahlOrt, kgeburtsdatum, knotiz, kmaennlich, kemail, knummer) values (?, ?, ?, ?, ?, ?, ?, ?, null)
Hibernate: insert into tkontakte (kvorname, knachname, kstrasseNummer, kpostleitzahlOrt, kgeburtsdatum, knotiz, kmaennlich, kemail, knummer) values (?, ?, ?, ?, ?, ?, ?, ?, null)
11:53:57,875 WARN JDBCExceptionReporter:71 - SQL Error: -32, SQLState: S1000
11:53:57,875 ERROR JDBCExceptionReporter:72 - The table data is read only in statement [insert into tkontakte (kvorname, knachname, kstrasseNummer, kpostleitzahlOrt, kgeburtsdatum, knotiz, kmaennlich, kemail, knummer) values (?, ?, ?, ?, ?, ?, ?, ?, null)]
11:53:57,875 ERROR TestKontakte:40 - org.hibernate.exception.GenericJDBCException could not insert: [net.gobbz.kontakte.model.Kontakt]
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:hsqldb:file:testdb</property>
<property name="connection.username">SA</property>
<property name="connection.password"></property>
<property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="connection.shutdown">true</property>
<property name="transaction.factory_class">
org.hibernate.transaction.JDBCTransactionFactory
</property>
<property name="current_session_context_class">thread</property>
<property name="transaction.auto_close_session">true</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping resource="net/gobbz/kontakte/model/Kontakt.hbm.xml" />
</session-factory>
</hibernate-configuration>
それは次のようなエラーがスローされます
「 '' 'Kontakt.hbm.xml'''を共有できますか?あなたのテーブルは読み取り専用モードのようです。 –
'' 'testdb'''は読み取り専用であるか、または' 'testdb.properties'''を読み取り専用として定義していますか? –
testdbが読み取り専用であるが、testdb.propertiesにreadonly = falseがある場合、どのように制御できるか分かりません。 – ToTom