Olá pessoal! Estou usando MySql pra acompanhar esse curso, porém, quando eu sigo as instruções pra dar um update numa linha, ele acaba criando uma novo registro, estou acompanhando as tabelas usando o MySQL Workbench. No console do IntelliJ ele mostra que esta inserindo uma linha e fazendo um update, assim como na vídeo aula. Eu queria dizer pra JPA que se o registro já existir n crie um novo. No caso o JPA deveria fazer só um select e update, mas não é oq esta acontecendo. Será que é alguma configuração do persistence.xml?
package br.com.alura.loja.testes;
import br.com.alura.loja.br.com.alura.util.JPAUtilMySql;
import br.com.alura.loja.modelo.Categoria;
import javax.persistence.EntityManager;
import java.math.BigDecimal;
public class Teste {
public static void main(String[] args) {
Categoria categoria = new Categoria("CELULARES");
EntityManager em = JPAUtilMySql.getEntityManager();
em.getTransaction().begin();
em.persist(categoria);
categoria.setNome("1234");
em.getTransaction().commit();
em.close();
}
}
Aqui ta o meu persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2"
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_2.xsd">
<persistence-unit name="loja" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:loja"/>
<property name="javax.persistence.jdbc.user" value="sa"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
<!-- UNIDADE DE TESTES -->
<persistence-unit name="loja-mysql">
<properties>
<!-- DADOS CONEXAO -->
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="root" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/loja" />
<property name="hibernate.default_schema" value="loja"/>
<!-- CONFIGURACAO -->
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.archive.autodetection" value="class" />
</properties>
</persistence-unit>
</persistence>