Tem uma coisa me incomodando, e por estar diferente do exemplo dado no video não sei dizer se esta certo ou errado. Pela aula ensina usar
@GeneratedValue(strategy=GenerationType.IDENTITY)
porem usando assim da o seguinte erro
Exception in thread "main" java.lang.ClassCastException: org.hibernate.id.IdentifierGeneratorHelper$2 cannot be cast to java.base/java.lang.Integer
at org.hibernate.type.descriptor.java.internal.IntegerJavaDescriptor.unwrap(IntegerJavaDescriptor.java:26)
at org.hibernate.type.descriptor.sql.spi.IntegerSqlDescriptor$1.doBind(IntegerSqlDescriptor.java:67)
at org.hibernate.sql.AbstractJdbcValueBinder.bind(AbstractJdbcValueBinder.java:69)
at org.hibernate.sql.ast.tree.expression.LiteralParameter.bindParameterValue(LiteralParameter.java:86)
at org.hibernate.sql.exec.internal.JdbcMutationExecutorImpl.execute(JdbcMutationExecutorImpl.java:61)
at org.hibernate.sql.exec.internal.JdbcMutationExecutorImpl.execute(JdbcMutationExecutorImpl.java:109)
at org.hibernate.metamodel.model.domain.internal.entity.SingleTableEntityTypeDescriptor.executeOperation(SingleTableEntityTypeDescriptor.java:768)
at org.hibernate.metamodel.model.domain.internal.entity.SingleTableEntityTypeDescriptor.executeInsert(SingleTableEntityTypeDescriptor.java:384)
at org.hibernate.metamodel.model.domain.internal.entity.SingleTableEntityTypeDescriptor.executeInsert(SingleTableEntityTypeDescriptor.java:376)
at org.hibernate.metamodel.model.domain.internal.entity.SingleTableEntityTypeDescriptor.insertInternal(SingleTableEntityTypeDescriptor.java:204)
at org.hibernate.metamodel.model.domain.spi.AbstractEntityTypeDescriptor.insert(AbstractEntityTypeDescriptor.java:885)
at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:79)
at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:643)
at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:278)
at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:259)
at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:313)
at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:392)
at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:301)
at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:208)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:139)
at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:189)
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:132)
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:59)
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:776)
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:761)
at modelo.util.PopulaMovimentacao.main(PopulaMovimentacao.java:37)
e eu trocando para
@GeneratedValue(strategy=GenerationType.AUTO)
funciona "normal". E nessa parte que esta me incomodando, porque minhas tabelas ficaram com o id sequencial.
Ex: add algo na tabela "CONTA" fica com o "id 1", add na "MOVIMENTACAO" fica com "id 2", volte a add na "CONTA" fica com "id 3" e assim sucessivamente.
CONTA
agencia | banco | id | numero | titular
1234 | 104 - CAIXA ECONOMICA FEDERAL | 5 | 98654-3 | Alexandre Duarte |
| 0123 | Caixa Economicaa | 30 | 456 | Leonardo
conta_id | data | descricao | id | tipo | valor |
+----------+---------------------+-------------------------------------+----+---------+---------+
| 1 | 2019-05-02 23:47:07 | Conta de luz - ABRIL/2012 | 6 | SAIDA | 135.00 |
O certo não seria "CONTA" ficar com "id 2" e "MOVIMENTACAO" "id 1" e...? Eu estou entendendo errado como funciona, ou realmente tem algo errado nesse código?
Ps. Estou conseguindo progredir no curso usando @GeneratedValue(strategy=GenerationType.AUTO), mas acho que pode me dificultar sem entender porque esta assim.