Hallo zusammen,
ich versuch gerade per API einen Datenbanktabelle nach den Vorgaben dieses Posts zu implementieren.
Die Anlage der Datenbank und der Tabelle werfen soweit keine Fehler.
Wenn ich dann jedoch versuche Daten in die Tabelle zu schreiben kommt der folgende Fehler:
java.lang.NullPointerException
at de.espirit.or.impl.AbstractSessionHandler.safeClose(AbstractSessionHandler.java:303)
at de.espirit.or.impl.AbstractSessionHandler.fetchByKeys(AbstractSessionHandler.java:209)
at de.espirit.firstspirit.content.ContentManagerImpl$TemporalSessionHandler.fetchByKeys(ContentManagerImpl.java:1175)
at de.espirit.firstspirit.content.ContentManagerImpl.fetchByKeys(ContentManagerImpl.java:539)
at de.espirit.firstspirit.store.access.templatestore.SessionHandlerImpl.fetchByKeys(SessionHandlerImpl.java:75)
at de.espirit.or.impl.AbstractSession.load(AbstractSession.java:774)
at de.espirit.or.impl.EntityImpl.doLoad(EntityImpl.java:666)
at de.espirit.or.impl.EntityImpl.getValue(EntityImpl.java:175)
at de.espirit.or.impl.EntityImpl.getValue(EntityImpl.java:132)
at de.espirit.or.impl.EntityImpl.getGid(EntityImpl.java:138)
at de.espirit.firstspirit.store.access.templatestore.SchemaImpl.postCommit(SchemaImpl.java:708)
at de.espirit.or.impl.AbstractSession.postCommit(AbstractSession.java:1050)
at de.espirit.or.impl.AbstractSession.commit(AbstractSession.java:593)
at de.espirit.or.impl.AbstractSession.commit(AbstractSession.java:575)
at de.materna.firstspirit.utils.gsa.GsaPermissionsTest.setupGroupsAndPermissions(GsaPermissionsTest.java:137)
at de.materna.firstspirit.utils.gsa.GsaPermissionsTest.setup(GsaPermissionsTest.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Anbei der Code mit dem ich die Tabelle anlege:
schema.setLock(true, false);
final de.espirit.or.schema.Schema orSchema = schema.getOrSchema();
final EntityType entityType = orSchema.createEntityType("my_table");
final SimpleAttribute<String> shortIdAttribute = entityType.createSimpleAttribute("my_column", String.class);
shortIdAttribute.setRequired(true);
shortIdAttribute.setSize(32);
shortIdAttribute.setKey(true);
schema.setOrSchema(orSchema);
schema.getSession().commit();
schema.save("saving schema", false);
schema.setLock(false, false);
final Session session = schema.getSession();
final Entity entity = session.createEntity(entityType.getName());
entity.put("my_column", "value");
session.commit();
Beim letzten commit wird dann der Fehler geworfen.