Ao inserir o cliente 2 e gerado uma exception: Caused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '2' for key 'Cliente.UK_a8p0pxvka1kuwy5y09omepofx' como esperado, so que o transação não chega a ser commitada porem o cliente 1 é inserido no banco deveria acontecer um rollback, alguem consegue me ajudar ?
obs: estou utilizando groovy na linguagem com a stack de java.
class TesteContaCliente {
static void main(String[] args) {
JPAUtil jpa = new JPAUtil()
Cliente cliente = new Cliente(nome: "Leonardo", endereco: "Rua Fulano, 123", profissao: "Professor")
Cliente cliente2 = new Cliente(nome: "Douglas", endereco: "Rua Fulano, 123", profissao: "Professor")
Conta conta = new Conta()
conta.setId(2)
cliente.setConta(conta)
cliente2.setConta(conta)
EntityManager em = jpa.createEntityManager()
EntityTransaction etx = em.getTransaction()
etx.begin()
em.persist(cliente)
em.persist(cliente2)
etx.commit()
em.close()
}
}
pom.xml :
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.1.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
<persistence-unit name="financas" transaction-type="RESOURCE_LOCAL">
<provider> org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/java-jpa?allowPublicKeyRetrieval=true&useSSL=false&characterEncoding=UTF-8" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="123456" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.connection.autocommit" value="false"/>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
</properties>
</persistence-unit>