Hibernate не вставляет данные в строки базы данных Derby

Я использую eclipse с сервером Jboss 6.0 и встроенным драйвером derby. Я создал базу данных:

CREATE TABLE QUOTAZIONI.QuotazioniBancarie
(
Cliente VARCHAR(50) NOT NULL,
Prodotto VARCHAR(50) NOT NULL,
Prezzo DOUBLE NOT NULL,
Data DOUBLE NOT NULL,
CONSTRAINT primary_key PRIMARY KEY (Cliente, Prodotto, Prezzo, Data)
);

и используя инструменты JPA сущность, связанную с ним: Quotazionibancarie.java и QuotazionibancariePK.java (есть 2 файла, потому что это составной первичный ключ)

Фрагмент кода для сохранения строк выглядит следующим образом:

.
.
.
@PersistenceContext(unitName = "P1Server")
private EntityManager em;
.
.
.
EntityTransaction et = em.getTransaction();
et.begin();
Quotazionibancarie q1 = new Quotazionibancarie(q.getCliente(), q.getProdotto(),        q.getPrezzo());          
em.persist(q1);
et.commit();

где класс q - это класс, который я создал для удобства. Поле данных генерируется автоматически.

Когда я пытаюсь сохранить содержимое в БД, сервер не выдаёт мне ошибку, но и не сохраняет строки.

11:36:02,710 INFO  [STDOUT] Hibernate: 
11:36:02,710 INFO  [STDOUT]     insert 
11:36:02,711 INFO  [STDOUT]     into
11:36:02,711 INFO  [STDOUT]         Quotazionibancarie
11:36:02,711 INFO  [STDOUT]         (cliente, data, prezzo, prodotto) 
11:36:02,711 INFO  [STDOUT]     values
11:36:02,711 INFO  [STDOUT]         (?, ?, ?, ?)

Я искал на форумах, но не смог найти решение, подходящее для моей проблемы. Любая идея о том, что вызывает мою проблему и как ее исправить?

persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="P1Server" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:/Quotazioni</jta-data-source>
        <class>entities.Quotazionibancarie</class>
        <class>entities.QuotazionibancariePK</class>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="true" />
            <property name="hibernate.hbm2ddl.auto" value="create" />
        </properties>       
    </persistence-unit>
</persistence>

quotazioni-ds.xml

<?xml version="1.0" encoding="UTF-8" ?>
<datasources>
<local-tx-datasource>
    <!-- The jndi name of the DataSource, it is prefixed with java:/ -->
    <jndi-name>Quotazioni</jndi-name>
    <driver-class>org.apache.derby.jdbc.EmbeddedDriver</driver-class>
    <connection-url>jdbc:derby://localhost:1527/Quotazioni;create=true</connection-url>
    <user-name>root</user-name>
    <password>root</password>
    <min-pool-size>5</min-pool-size>
    <max-pool-size>20</max-pool-size>
    <idle-timeout-minutes>5</idle-timeout-minutes>
    <track-statements />
    <depends>jboss:service=Derby</depends>
</local-tx-datasource>

<mbean code="org.jboss.jdbc.DerbyDatabase" name="jboss:service=Derby">
    <attribute name="Database">Quotazioni</attribute>
</mbean>

</datasources>

Скажите мне, если мне нужно указать какую-то другую информацию.

Спасибо. Стефано

2 ответа

Некоторые распространенные причины неудачного сохранения данных:

  1. Вы фактически получаете ошибку, возвращенную из базы данных, но вы не проверяете ее или как-то ее игнорируете.
  2. Вы установили для своего приложения значение autocommit=false, но никогда не фиксировали, поэтому база данных откатывает ваши изменения
  3. Вы на самом деле сохраняете данные, но когда вы ищете их, вы не смотрите в нужном месте (неверная база данных или неверная схема внутри базы данных), поэтому вы не видите данные при переходе искать это.

Есть и другие причины, но сначала нужно проверить три.

Ваш стол - это Quotazionibancarie или QuotazioniBancarie? может быть в этом была проблема

Другие вопросы по тегам