Hello,

Finally I could start personal project which I can use cayenne again after good 
time. I'm using the version 4.1 and every table/class were setup through 
Cayenne-Modeler, the PK generation strategy is the default one. At the db 
generate schema dialog I choose JdbcAdapter because I want the 
Cayenne-Generated PK option (image)
As you can see in the image, Cayenne-Modeler doesn't create the sql correctly 
for table auto_pk_support, missis the schema.
I discovery this on the first time I've tried to insert in the table and 
Cayenne gave an exception about sequence PK_NOTA existence, despite choosing 
the default option.
After that I've copied that generated sql, put the schema (corretagem) and 
update the database. I'm stoped again, on insert, this time because Cayenne 
have not set the ID, throuwing a commit exception:

Caused by: java.lang.reflect.InvocationTargetException
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
        at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at 
javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
        at 
javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
        at 
javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1782)
        ... 47 more
Caused by: org.apache.cayenne.CayenneRuntimeException: [v.4.1 Jul 14 2020 
10:26:08] Commit Exception
        at 
org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:774)
        at 
org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:691)
        at 
com.gilbertoca.corretagem.dao.NotaCayenneDao.create(NotaCayenneDao.java:59)
        at 
com.gilbertoca.corretagem.view.NotaController.salvar(NotaController.java:142)
        ... 58 more
Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: NULL not 
allowed for column "ID"; SQL statement:
INSERT INTO corretagem.nota (agente_id, corretagem, dt_pregao, emolumentos, 
horario, irpf_operacao_base, iss, nr_nota, tx_ana, tx_liquidacao, tx_registro, 
tx_termo_opcao_futuro) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [23502-200]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:459)
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
        at org.h2.message.DbException.get(DbException.java:205)
        at org.h2.message.DbException.get(DbException.java:181)
        at org.h2.table.Column.validateConvertUpdateSequence(Column.java:374)
        at org.h2.table.Table.validateConvertUpdateSequence(Table.java:845)
        at org.h2.command.dml.Insert.insertRows(Insert.java:187)
        at org.h2.command.dml.Insert.update(Insert.java:151)
        at 
org.h2.command.CommandContainer.executeUpdateWithGeneratedKeys(CommandContainer.java:272)
        at org.h2.command.CommandContainer.update(CommandContainer.java:191)
        at org.h2.command.Command.executeUpdate(Command.java:251)
        at 
org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:191)
        at 
org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:152)
        at 
org.apache.cayenne.access.jdbc.BatchAction.runAsIndividualQueries(BatchAction.java:171)
        at 
org.apache.cayenne.access.jdbc.BatchAction.performAction(BatchAction.java:90)
        at 
org.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:97)
        at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:273)
        at 
org.apache.cayenne.access.DataDomainFlushAction.runQueries(DataDomainFlushAction.java:233)
        at 
org.apache.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:153)
        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)
        ... 61 more

So, I'm here looking for help.
Regards,
Gilberto

Reply via email to