Я использую файловое хранилище HSQLDB для быстрого поиска данных. Я использую EclipseLink для JPA. Я следил за всем из документов, но данные не сохраняются в файле. Я хочу использовать файл в качестве постоянного хранилища, и данные не должны быть потеряны.
Если я вставляю данные и запрашиваю их в одной и той же транзакции, он возвращает сохраненные данные. Однако, если я запрашиваю отдельно, данных там нет.
**This is my persistence.xml**
<persistence-unit name="bridge"
transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" />
<property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:file:datastore/bridgedb;shutdown=true;hsqldb.write_delay=false;" />
<property name="javax.persistence.jdbc.user" value="xyz_user" />
<property name="javax.persistence.jdbc.password" value="xyz_user" />
<property name="javax.persistence.schema-generation.database.action" value="none"/>
<property name="javax.persistence.schema-generation.create-source" value="script"/>
<property name="javax.persistence.schema-generation.drop-source" value="script"/>
<property name="javax.persistence.sql-load-script-source" value="sql/create_schema.sql"/>
<property name="eclipselink.logging.level" value="FINE"/>
<property name="eclipselink.connection-pool.default.initial" value="1" />
</properties>
</persistence-unit>
DaoImpl.java
@Override
public void saveObject(MyObject myObject) {
try {
txn.begin();
entityManager.persist(myObject);
MyObject newObj = entityManager.find(MyObject.class, myObject.getId());
// newObj has the stuff saved earlier
txn.commit();
} catch (Exception e) {
log.debug("Exception occurred while saving RRNInfo ", e);
txn.rollback();
}
}
// Here, it saves fine.
@Override
public MyObject getObject(String key) {
MyObject myObject = null;
try {
txn.begin();
myObject = entityManager.find(MyObject.class, key);
} catch (Exception e) {
log.debug("Exception occurred while retrieving RRNInfo", e);
txn.rollback();
}
entityManager.close();
return myObject;
}
// Here, it is gone. There is nothing in the database.
Кроме того, кажется, что каждый раз, когда запускается SQL-запрос, таблица
создано даже после изменения schema-generation.database.action на none.
Есть идеи, что здесь происходит?