Erro MYSQL com Hibernate

8 respostas
M

Boa Tarde,

Quando tento persistir os dados no banco MYSQL, aparece a seguinte mensagem de erro.

an 19, 2018 11:51:55 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions

WARN: SQL Error: 1064, SQLState: 42000

jan 19, 2018 11:51:55 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions

ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near value for hibernate_sequence at line 1

Exception in thread main javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet

at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:149)

at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:157)

at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:164)

at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:789)

at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:767)

at pacotehibernate.InsereUsuarioHibernate.main(InsereUsuarioHibernate.java:28)

Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet

at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)

at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)

at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)

at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)

at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:69)

at org.hibernate.id.enhanced.SequenceStructure$1.getNextValue(SequenceStructure.java:95)

at org.hibernate.id.enhanced.NoopOptimizer.generate(NoopOptimizer.java:40)

at org.hibernate.id.enhanced.SequenceStyleGenerator.generate(SequenceStyleGenerator.java:452)

at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:105)

at org.hibernate.jpa.event.internal.core.JpaPersistEventListener.saveWithGeneratedId(JpaPersistEventListener.java:67)

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:58)

at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:782)

 2 more

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near value for hibernate_sequence at line 1

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.Util.getInstance(Util.java:408)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2484)

at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)

at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1966)

at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:60)

 11 more

Alguém tem alguma dica de como solucionar esse problema?

8 Respostas

R

Tem erro de sintaxe na sua Query, posta ela ai.

darlan_machado

Este erro está associado à forma como você mapeou a(s) entidade(s).
Se quiser, posta aí, tanto a entity quanto a configuração do hibernate.

M

----- Entidade -----

package pacotehibernate;

import javax.persistence.Entity;

import <a href="http://javax.persistence.Id">javax.persistence.Id</a>;

import javax.persistence.GeneratedValue;

@Entity
public class UsuarioHibernate {

@Id
@GeneratedValue
private Long Id;

private String NomeCompleto;
private String Email;

/**
 * @return the nomeCompleto
 */
public String getNomeCompleto() {
	return NomeCompleto;
}
/**
 * @param nomeCompleto the nomeCompleto to set
 */
public void setNomeCompleto(String nomeCompleto) {
	NomeCompleto = nomeCompleto;
}
/**
 * @return the email
 */
public String getEmail() {
	return Email;
}
/**
 * @param email the email to set
 */
public void setEmail(String email) {
	Email = email;
}
/**
 * @return the id
 */
public Long getId() {
	return Id;
}
/**
 * @param id the id to set
 */
public void setId(Long id) {
	Id = id;
}

}

------ persistence.xml -------

<?xml version="1.0" encoding="UTF-8"?>

org.hibernate.jpa.HibernatePersistenceProvider false
<property name="javax.persistence.jdbc.driver" 
	value="com.mysql.jdbc.Driver"/>
	
	<property name="javax.persistence.jdbc.user" 
	value="root"/>
	
	<property name="javax.persistence.jdbc.password" 
	value="root"/>
	
	<property name="javax.persistence.jdbc.url" 
	value="jdbc:mysql://localhost:3306/cmdooperacional"/>
	
</properties>

----- hibernate.cfg.xml -------

<?xml version="1.0" encoding="UTF-8"?> com.mysql.jdbc.Driver root jdbc:mysql://localhost:3306/cmdooperacional root org.hibernate.dialect.MySQLInnoDBDialect true false update
<!-- Livro -->
	<mapping class="pacotehibernate.InsereUsuarioHibernate" />
	
</session-factory>
darlan_machado

Para o MySQL, eu sempre mapeei da seguinte maneira:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

Aí temos o seguinte, se você está criando as tabelas pelo próprio hibernate, ele criará da seguinte maneira

CREATE TABLE foo (
    id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    ...
);

Ou algo bem parecido.
Caso contrário, teu banco precisa ter as tabelas criadas mais ou menos da mesma maneira.

No teu mapeamento, como você não especifica a estratégia para o generation type, creio que o hibernate tente, por padrão, utilizar SEQUENCE, que é uma abordagem não usual para o MySQL.

M

Fiz o mapeamento conforme dito, mas apareceu o seguinte erro:

WARN: GenerationTarget encountered exception accepting command : Error executing DDL via JDBC Statement

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL via JDBC Statement

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)

at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlString(SchemaDropperImpl.java:375)

at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlStrings(SchemaDropperImpl.java:359)

at org.hibernate.tool.schema.internal.SchemaDropperImpl.dropFromMetadata(SchemaDropperImpl.java:241)

at org.hibernate.tool.schema.internal.SchemaDropperImpl.performDrop(SchemaDropperImpl.java:154)

at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop(SchemaDropperImpl.java:126)

at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop(SchemaDropperImpl.java:112)

at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:144)

at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72)

at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:313)

at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:452)

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:889)

at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)

at pacotehibernate.InsereUsuarioHibernate.main(InsereUsuarioHibernate.java:12)

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near if exists at line 1

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.Util.getInstance(Util.java:408)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2480)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2438)

at com.mysql.jdbc.StatementImpl.executeInternal(StatementImpl.java:845)

at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:745)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

 15 more
jan 22, 2018 9:37:10 AM org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection

INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@698122b2] for (non-JTA) DDL execution was not in auto-commit mode; the Connection local transaction will be committed and the Connection will be set into auto-commit mode.

jan 22, 2018 9:37:10 AM org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException

WARN: GenerationTarget encountered exception accepting command : Error executing DDL via JDBC Statement

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL via JDBC Statement

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)

at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:440)

at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:424)

at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:315)

at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166)

at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135)

at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121)

at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:155)

at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72)

at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:313)

at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:452)

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:889)

at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)

at pacotehibernate.InsereUsuarioHibernate.main(InsereUsuarioHibernate.java:12)

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near by default as identity,

Email varchar(255),

Nome varchar(255), at line 2

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.Util.getInstance(Util.java:408)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2480)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2438)

at com.mysql.jdbc.StatementImpl.executeInternal(StatementImpl.java:845)

at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:745)

at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)

 15 more
jan 22, 2018 9:37:10 AM org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources

INFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@476b0ae6’

Digite o Nome Completo do Usuário:

sdasd

Digite o Email do Usuário:

asdasd

jan 22, 2018 9:37:13 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions

WARN: SQL Error: 1146, SQLState: 42S02

jan 22, 2018 9:37:13 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions

ERROR: Table cmdooperacional.usuariohibernate doesnt exist

jan 22, 2018 9:37:13 AM org.hibernate.internal.ExceptionMapperStandardImpl mapManagedFlushFailure

ERROR: HHH000346: Error during managed flush [org.hibernate.exception.SQLGrammarException: could not execute statement]

Exception in thread main javax.persistence.RollbackException: Error while committing the transaction

at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:77)

at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:71)

at pacotehibernate.InsereUsuarioHibernate.main(InsereUsuarioHibernate.java:31)

Caused by: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute statement

at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:149)

at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:157)

at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:61)

 2 more

Caused by: org.hibernate.exception.SQLGrammarException: could not execute statement

at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)

at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)

at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)

at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)

at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:178)

at org.hibernate.dialect.identity.GetGeneratedKeysDelegate.executeAndExtract(GetGeneratedKeysDelegate.java:57)

at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:42)

at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2919)

at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3490)

at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:81)

at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:589)

at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:463)

at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)

at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)

at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1437)

at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:493)

at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3207)

at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2413)

at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:473)

at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:156)

at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$100(JdbcResourceLocalTransactionCoordinatorImpl.java:38)

at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:231)

at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:68)

 1 more

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table cmdooperacional.usuariohibernate doesnt exist

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.Util.getInstance(Util.java:408)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2484)

at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)

at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2079)

at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2013)

at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5104)

at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1998)

at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:175)

 19 more
darlan_machado

Só colocar o log, sem as alterações que fez, fica difícil.
Você está fazendo essa configuração seguindo qual tutorial/livro/apostila?

M

Estou seguindo uma apostila antiga da K19. Tem algum material mais atual que possa me indicar?
Fiz umas modificações no cfg e no persistence. Segue:

package pacotehibernate;

import javax.persistence.Entity;

import <a href="http://javax.persistence.Id">javax.persistence.Id</a>;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

@Entity
public class UsuarioHibernate {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long Id;

private String Nome;
private String Email;

/**
 * @return the nomeCompleto
 */
public String getNome() {
	return Nome;
}
/**
 * @param nomeCompleto the nomeCompleto to set
 */
public void setNomeCompleto(String nome) {
	Nome = nome;
}
/**
 * @return the email
 */
public String getEmail() {
	return Email;
}
/**
 * @param email the email to set
 */
public void setEmail(String email) {
	Email = email;
}
/**
 * @return the id
 */
public Long getId() {
	return Id;
}
/**
 * @param id the id to set
 */
public void setId(Long id) {
	Id = id;
}

}

<?xml version="1.0" encoding="UTF-8"?> com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/cmdooperacional root root org.hibernate.dialect.MySQLInnoDBDialect true true create
<!-- Usuário -->
	<mapping class="pacotehibernate.UsuarioHibernate" />
	
	
</session-factory>
<?xml version="1.0" encoding="UTF-8"?>

org.hibernate.jpa.HibernatePersistenceProvider false
<property name="javax.persistence.jdbc.driver" 
	value="com.mysql.jdbc.Driver"/>
	
	<property name="javax.persistence.jdbc.user" 
	value="root"/>
	
	<property name="javax.persistence.jdbc.password" 
	value="root"/>
	
	<property name="hibernate.default_schema" value="cmdooperacional"/>
	
	<property name="javax.persistence.jdbc.url" 
	value="jdbc:mysql://localhost:3306/cmdooperacional"/>
	
</properties>
darlan_machado

Acredito que a K19 tenha material atualizado.
Além disso, creio que a Caelum ainda disponibilize apostilas com esse conteúdo.
Se não, se procurar, encontra até vídeos no youtube com isso.

Criado 19 de janeiro de 2018
Ultima resposta 22 de jan. de 2018
Respostas 8
Participantes 3