Problemas com Hibernate

3 respostas
TeiTei
Galera estou com um pequeno problema, estou utilizando Hibernate para acessa a base, tenho uma entidade chamada User com os annotations padrões ex:
@Entity
@Table(name = "USERS")
public class User {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Integer id;

	
	@Column(name = "USERNAME")
	private String userName;

Ao fazer o deploy da minha aplicação eu faço uma interceptação com o ServletContextListener e utilizo um esquema de

new SchemaUpdate(cfg).execute(Boolean.TRUE, isUpdate);

o codigo acima atualiza as minhas entidades em base de dados, ou seja se eu criar um novo atributo em alguma de minhas entidades o hibernate faz essa verificação antes de subir a aplicação, porem esta gerenado o seguinte erro:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown table 'system_sequences' in information_schema
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
	at com.mysql.jdbc.Util.getInstance(Util.java:381)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3558)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3490)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2109)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2642)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2571)
	at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1464)
	at org.hibernate.tool.hbm2ddl.DatabaseMetadata.initSequences(DatabaseMetadata.java:151)
	at org.hibernate.tool.hbm2ddl.DatabaseMetadata.<init>(DatabaseMetadata.java:69)
	at org.hibernate.tool.hbm2ddl.DatabaseMetadata.<init>(DatabaseMetadata.java:62)
	at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:170)
	at br.com.sigma.hibernate.ConfiguracaoHibernate.updateDataBase(ConfiguracaoHibernate.java:76)
	at br.com.sigma.hibernate.ConfiguracaoHibernate.configuracao(ConfiguracaoHibernate.java:60)
	at br.com.sigma.hibernate.HibernateFactory.setConfiguracao(HibernateFactory.java:127)
	at br.com.sigma.hibernate.HibernateFactory.<init>(HibernateFactory.java:20)
	at br.com.sigma.hibernate.BaseHibernate.setHibernate(BaseHibernate.java:105)
	at br.com.sigma.hibernate.BaseHibernate.<init>(BaseHibernate.java:37)
	at br.com.sigma.hibernate.ContextoListener.contextInitialized(ContextoListener.java:46)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:519)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

3 Respostas

maior_abandonado

bom… eu não manjo do strategy=generationtype.auto, mas como 40 minutos no guj é bastante tempo (respostas costumam vir em menos), vou dar meu pitaco…

desconfio que ele está procurando a tal da tabela ai do erro, não encontra e da esse erro, parece que ela se refere a sequences, coisa que o my sql não tem se bem me lembro (faz tempo que só mexo com oracle tb =/). Tenta troca o generationtype.auto por generationtype.identity e ve ai se funciona…

AGAraujo

Cara qual a versão do seu MySQL (e o dialeto que está usando)?
O problema esta relacionado a isto ou a permissão (caso mais raro).
Verifique logo se você consegue visualizar o esquema “information_schema” e dentro dele a tabela “system_sequences”.
Posta ai o resultado.

AGAraujo

GenerationType.AUTO:
“The native identity generator picks other identity generators like identity, sequence, or hilo, depending on the capabilities of the underlying database. Use this generator to keep your mapping metadata portable to different database management systems”

Em outras palavra para os Bancos de Dados mais conhecidos no mercado o hibernate deve reconhecer a estratégia mais apropriada, no caso IDENTITY.

Criado 22 de novembro de 2010
Ultima resposta 22 de nov. de 2010
Respostas 3
Participantes 3