I don't think FrontBase is very commonly used. I would recommend submitting a minimal example of the problem and someone should be able to fix the issue then.
On Thu, Apr 15, 2021 at 3:44 PM Jérémy DE ROYER <jeremy.dero...@ingencys.net> wrote: > Hello, > > I switched my model from FrontBase to PostgreSQL and it works great. > > Does someone use Cayenne 4.1 with FrontbaseSQL successfully ? > > Is there something specific to know ? > > Thank’s for any tip, > > Jérémy > > > Le 14 avr. 2021 à 23:05, Jérémy DE ROYER <jeremy.dero...@ingencys.net> > a écrit : > > > > Hi all, > > > > I’m trying to find a solution for the (temporary ?) lack of horizontal > inheritance so I did model vertical inheritance following : > > > > https://cayenne.apache.org/docs/3.0/modeling-vertical-inheritance.html > > > > using a Frontbase database. > > > > I did : > > - create the model, > > - generate the database, > > - fix lack of jars and other things like username, password, jdbc driver > > > > The demo code below starts well and connects to database... > > > > try { > > ServerRuntime cayenneRuntime = ServerRuntime.builder() > > .addConfig("cayenne-CayenneTest.xml") > > .build(); > > > > ObjectContext context = cayenneRuntime.newContext(); > > > > Book _newBook = context.newObject(Book.class); > > _newBook.setTitle("Nouveau Book"); > > _newBook.setCreated(new Date()); > > > > context.commitChanges(); > > > > EBook _newEBook = context.newObject(EBook.class); > > _newEBook.setTitle("Nouveau EBook"); > > _newEBook.setCreated(new Date()); > > _newEBook.setDownloadUrl("https://www.google.fr/"); > > > > context.commitChanges(); > > > > PaperBook _newPaperBook = context.newObject(PaperBook.class); > > _newPaperBook.setTitle("Nouveau PaperBook"); > > _newPaperBook.setCreated(new Date()); > > _newPaperBook.setShippingWeight(1000); > > > > context.commitChanges(); > > > > List<Book> _books = ObjectSelect.query(Book.class).select(context); > > > > System.out.println("** ALL **"); > > > > for (Book currentBook : _books) > > { > > System.out.println(currentBook.getTitle() + " created on " + > currentBook.getCreated()); > > } > > } > > catch (Exception e) { > > System.out.println("An error occured : " + e.getMessage()); > > e.printStackTrace(); > > } > > > > …but throws this exception > > > > An error occured : [v.4.1 Jul 14 2020 10:40:45] Commit Exception > > org.apache.cayenne.CayenneRuntimeException: [v.4.1 Jul 14 2020 10:40:45] > Commit Exception > > at > org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:774) > > at > org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:691) > > at your.app.Application.<init>(Application.java:50) > > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) > > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > > at java.lang.reflect.Constructor.newInstance(Constructor.java:423) > > at java.lang.Class.newInstance(Class.java:442) > > at com.webobjects.appserver.WOApplication.main(WOApplication.java:547) > > at your.app.Application.main(Application.java:25) > > Caused by: java.lang.NullPointerException > > at > org.apache.cayenne.access.jdbc.SQLTemplateAction.execute(SQLTemplateAction.java:242) > > at > org.apache.cayenne.access.jdbc.SQLTemplateAction.runWithNamedParametersBatch(SQLTemplateAction.java:179) > > at > org.apache.cayenne.access.jdbc.SQLTemplateAction.performAction(SQLTemplateAction.java:111) > > at > org.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:97) > > at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:273) > > at > org.apache.cayenne.dba.frontbase.FrontBasePkGenerator.longPkFromDatabase(FrontBasePkGenerator.java:143) > > at > org.apache.cayenne.dba.JdbcPkGenerator.generatePk(JdbcPkGenerator.java:220) > > at > org.apache.cayenne.access.DataDomainInsertBucket.createPermIds(DataDomainInsertBucket.java:168) > > at > org.apache.cayenne.access.DataDomainInsertBucket.appendQueriesInternal(DataDomainInsertBucket.java:76) > > at > org.apache.cayenne.access.DataDomainSyncBucket.appendQueries(DataDomainSyncBucket.java:78) > > at > org.apache.cayenne.access.DataDomainFlushAction.preprocess(DataDomainFlushAction.java:185) > > at > org.apache.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:143) > > at org.apache.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:624) > > at > org.apache.cayenne.access.DataDomain.onSyncNoFilters(DataDomain.java:594) > > at > org.apache.cayenne.access.DataDomain$DataDomainSyncFilterChain.onSync(DataDomain.java:822) > > at > org.apache.cayenne.tx.TransactionFilter.lambda$onSync$0(TransactionFilter.java:61) > > at > org.apache.cayenne.tx.DefaultTransactionManager$BaseTransactionHandler.performInTransaction(DefaultTransactionManager.java:183) > > at > org.apache.cayenne.tx.DefaultTransactionManager$BaseTransactionHandler.performInNewTransaction(DefaultTransactionManager.java:155) > > at > org.apache.cayenne.tx.DefaultTransactionManager$NestedTransactionHandler.handle(DefaultTransactionManager.java:98) > > at > org.apache.cayenne.tx.DefaultTransactionManager.performInTransaction(DefaultTransactionManager.java:65) > > at > org.apache.cayenne.tx.DefaultTransactionManager.performInTransaction(DefaultTransactionManager.java:43) > > at > org.apache.cayenne.tx.TransactionFilter.onSync(TransactionFilter.java:61) > > at > org.apache.cayenne.access.DataDomain$DataDomainSyncFilterChain.onSync(DataDomain.java:821) > > at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:581) > > at > org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:742) > > ... 9 more > > > > It seem’s to be related to pk generation so I try a select unqiue from > Book in FrontBase and it worked lije a charm. > > > > Any idea ? > > > > Many thank’s, > > > > Jérémy > >