Sorry, please read

« Migrate from FrontbaseSQL to PostgreSQL »  😄

Jérémy

> Le 16 avr. 2021 à 10:04, Jérémy DE ROYER <jeremy.dero...@ingencys.net> a 
> écrit :
> 
> Hi Hugi,
> 
> Unfortunately, I think you’re right.
> 
> I wanted to leave FrontbaseSQL too but as Andrus say, the meeting in 
> Frankfurt help me to resolve some cases and finally we keep our softwares 
> using FrontbaseSQL.
> 
> According to your experience, is there an easy way to migrate/transfert from 
> PostgreSQL to FrontBaseSQL ?
> 
> It could respond to the request from developers to have access to programming 
> tools with the database, not offered by FrontbaseSQL.
> 
> Thank’s for this highlight,
> 
> Jérémy
> 
>> Le 16 avr. 2021 à 09:53, Hugi Thordarson <h...@karlmenn.is> a écrit :
>> 
>> Hi Jérémy,
>> 
>> I believe you hit a bug in the FrontBase JDBC driver:
>> https://issues.apache.org/jira/browse/CAY-2574 
>> <https://issues.apache.org/jira/browse/CAY-2574>
>> 
>> Andrus wrote to FrontBase about this after our Frankfurt meetup:
>> https://mail-archives.apache.org/mod_mbox/cayenne-dev/201905.mbox/%3C52EC2486-4736-4854-AE49-A7CF77904E52%40objectstyle.org%3E
>>  <https://mail-archives.apache.org/mod_mbox/cayenne-dev/201905.mbox/browser>
>> 
>> I haven't seen anything from FB about this since this thread, perhaps you 
>> should give their support a check?
>> I also wrote to them last year about their JDBC driver not working on more 
>> recent Java versions, but don't think they've fixed it. I ended up migrating 
>> that one last FrontBase app to Postgres.
>> 
>> Cheers,
>> - hugi
>> 
>> 
>> 
>>> On 15 Apr 2021, at 20:59, Jérémy DE ROYER <jeremy.dero...@ingencys.net> 
>>> wrote:
>>> 
>>> Hi John,
>>> 
>>> I know that FrontbaseSQL is not commonly used but our all apps are based on.
>>> 
>>> I’ve just :
>>> - created the model explained on the doc 
>>> https://cayenne.apache.org/docs/3.0/modeling-single-table-inheritance.html
>>> - wrote the code below inside the ‘Application’ class of a simple woapp
>>> 
>>> But yes, maybe Cayenne is not done to work with FrontbaseSQL… as it works 
>>> well with PostregSQL.
>>> 
>>> Thank’s for your answer and have a nice day,
>>> 
>>> Jérémy
>>> 
>>> Le 15 avr. 2021 à 22:50, John Huss 
>>> <johnth...@gmail.com<mailto:johnth...@gmail.com>> a écrit :
>>> 
>>> 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<mailto: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<mailto: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
>>> 
>>> 
>>> 
>> 
> 

Reply via email to