У меня спящий режим отображается следующим образом:
<hibernate-mapping>
<class name="kochman.elie.data.types.InvoiceTVO" table="INVOICE">
<id name="id" column="ID">
<generator class="increment"/>
</id>
<property name="date" column="INVOICE_DATE"/>
<property name="customerId" column="CUSTOMER_ID"/>
<property name="schoolId" column="SCHOOL_ID"/>
<property name="bookFee" column="BOOK_FEE"/>
<property name="adminFee" column="ADMIN_FEE"/>
<property name="totalFee" column="TOTAL_FEE"/>
</class>
</hibernate-mapping>
где InvoiceTVO имеет переменные, определенные как:
private int id;
private Date date;
private int customerId;
private int schoolId;
private float bookFee;
private float adminFee;
private float totalFee;
Когда я делаю вставку в эту таблицу, я получаю следующую ошибку:
Hibernate: insert into INVOICE (INVOICE_DATE, CUSTOMER_ID, SCHOOL_ID, BOOK_FEE, ADMIN_FEE, TOTAL_FEE, ID) values (?, ?, ?, ?, ?, ?, ?)
50156 [AWT-EventQueue-0] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 22001
50156 [AWT-EventQueue-0] ERROR org.hibernate.util.JDBCExceptionReporter - Data truncation: Data truncated for column 'ADMIN_FEE' at row 1
50156 [AWT-EventQueue-0] ERROR org.hibernate.event.def.AbstractFlushingEventListener - Could not synchronize database state with session
Я попытался изменить тип adminFee на двойной, но это тоже не сработало. Проблема в том, что Hibernate действительно выполнил вставку правильно, и будущие операторы select работают для возврата текущего набора значений, но эта ошибка не позволяет мне продолжить обработку этого счета.
Поля bookFee, adminFee и totalFee должны быть валютами. Они определены в базе данных MySQL как десятичные (5,2).
Любая помощь в решении этой проблемы будет принята с благодарностью.