Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Saída do console diferente da aula

Boa tarde

A saída do meu console está diferente da aula

    select
        movimentac0_.id as id1_3_,
        movimentac0_.conta_id as conta_id6_3_,
        movimentac0_.data as data2_3_,
        movimentac0_.descricao as descrica3_3_,
        movimentac0_.tipoMovimentacao as tipomovi4_3_,
        movimentac0_.valor as valor5_3_ 
    from
        Movimentacao movimentac0_ 
    where
        movimentac0_.conta_id=?

Mesmo copiando o código da aula a saída está assim. O que há de errado?

Meu código

public class TesteJPQL {
    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("contas");
        EntityManager em = emf.createEntityManager();

        Conta conta = new Conta();
        conta.setId(2L);
        String jpql = "select m from Movimentacao m where m.conta = :pConta";

        Query query = em.createQuery(jpql);
        query.setParameter("pConta", conta);
        List<Movimentacao> resultList = query.getResultList();

        for (Movimentacao movimentacao : resultList) {
            System.out.println("Descrição: " + movimentacao.getDescricao());
            System.out.println("Tipo: " + movimentacao.getTipoMovimentacao());
        }    
    }
}
4 respostas

Olá Mayara, tudo bem com você?

Não sei se entendi muito bem, mas você não quer que os comandos SQL apareçam no console? Se for esse o caso, você precisa alterar duas prorpriedades no seu persistence.xml:

<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.format_sql" value="true"/>

Ficando mais ou menos assim:

<?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="alura">
        <class>br.com.alura.jpa.modelo.Conta</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/alura_jpa?serverTimezone=UTC" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="" />

            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MariaDBDialect"/>
            <property name="hibernate.show_sql" value="false"/>
            <property name="hibernate.format_sql" value="true"/>
        </properties>
    </persistence-unit>
</persistence>

Faz sentido? Qualquer problema é só avisar!

Abraços e bons estudos!!

Oi Thiago, quando eu faço isso não há saída nenhuma no console. Na aula, a saída do console deveria ser uma lista das movimentações salvas no BD, mas elas não aparecem, somente os comandos SQL. Tentei com meu código e não funcionou, então copiei o código da aula e tive o mesmo resultado :(

solução!

Opa Mayara, tranquilo?

Parece que o problema pode estar no banco mesmo. No terminal do MySQL Client (MariaDB XX.X), verifica se existem registros na tabela movimentacao associados à conta_id através do comando SELECT * FROM movimentacao.

Imgur

A minha hipótese é que o comando está funcionando, mas não está achando nada no banco. Testa aí e depois me avisa se é isso mesmo!

Oi Thiago, era isso mesmo. Muito obrigada! ^-^