У меня возникли проблемы с обработкой идентификаторов таблиц данных в базе данных с использованием OpenJPA и HSQLdb. Я создал абстрактный класс, где я обрабатывать аннотации и прочее переназначить в БД:OpenJPA HSQLdb - как обращаться с идентификаторами
// Property accessors
@Id
@Column(name = "IDTESTOBJEKT", unique = true, nullable = false)
public Integer getIdtestobjekt() {
return this.idtestobjekt;
}
public void setIdtestobjekt(Integer idtestobjekt) {
this.idtestobjekt = idtestobjekt;
}
Это как фасадный используется для создания Testobjekts.
Testobjekt test_obj = new Testobjekt();
test_obj.setEigentuemerin("helge");
// test_obj.setIdtestobjekt(1);
EntityManagerHelper.beginTransaction();
TestobjektDAO test_dao = new TestobjektDAO();
test_dao.save(test_obj);
EntityManagerHelper.commit();
List<Testobjekt> foo;
foo = test_dao.findByEigentuemerin("helge");
Testobjekt from_db = foo.get(0);
System.out.println(from_db.getEigentuemerin());
Тем не менее, что я установил ... 1, ничего ... Я получаю ошибки. как:
Field "model_layer.AbstractTestobjekt.idtestobjekt" of "[email protected]" can not be set to "null" value.
Я хочу ORM слой для обработки этого ID вещи, не беспокоит меня. Мой опыт работы с Hibernate заключается в том, что он отлично справляется с этим ... но OpenJPA кажется здесь громоздким. Я предполагаю, что мои аннотации ошибочны или что-то в этом роде, но у меня возникают проблемы с отслеживанием этой многоуровневой проблемы.
Я настроил OpenJPA в persistence.xml:
<persistence-unit name="HSQLdb_mvn_openJPA_autoTablesPU"
transaction-type="RESOURCE_LOCAL">
<provider>
org.apache.openjpa.persistence.PersistenceProviderImpl
</provider>
<class>model_layer.Testobjekt</class>
<class>model_layer.AbstractTestobjekt</class>
<properties>
<property name="openjpa.ConnectionDriverName"
value="org.hsqldb.jdbc.JDBCDriver" />
<property name="openjpa.ConnectionURL"
value="jdbc:hsqldb:hsql://localhost:9001/mydb" />
<property name="openjpa.ConnectionUserName" value="SA" />
<property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema(ForeignKeys=true)" />
</properties>
</persistence-unit>
Как обрабатывать автоматизированную стратегию ID с OpenJPA?
Спасибо, wishi