Problema com Login

5 respostas
C

Olá pessoal

alguém sabe como posso corrigir esse problema, estava fucnionando legal até esses dias, mas agora dá um erro de conversão, porém eu não estou fazendo conversão no login

controller

@Post
	@Path("/login")
	public void login(Usuario usuario){
		
		Usuario carregado = dao.carregar(usuario);
		
		if (carregado==null)
		{
			validator.add(new ValidationMessage("Login e/ou Senha Inválido!", "usuario.login"));
			validator.onErrorUse(Results.page()).of(UsuarioController.class).loginform();
		}
		else
		{
			this.usuarioLogado.login(carregado);
			result.redirectTo(IndexController.class).index();
		}
	}

dao

public Usuario carregar(Usuario usuario) {
		return (Usuario) this.session.createCriteria(Usuario.class).add(
				Restrictions.eq("login", usuario.getLogin())).add(
				Restrictions.eq("senha", usuario.getSenha())).uniqueResult();
	}

o problema está no momento que ele tenta carregar o usuario.

erro

17/07/2010 21:19:01 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
br.com.caelum.vraptor.InterceptionException: org.hibernate.exception.DataException: could not execute query
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:48)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:41)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor.intercept(HibernateTransactionInterceptor.java:45)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:41)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:48)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:62)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:55)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.exception.DataException: could not execute query
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:100)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.loader.Loader.doList(Loader.java:2235)
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
	at org.hibernate.loader.Loader.list(Loader.java:2124)
	at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:118)
	at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1597)
	at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)
	at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:328)
	at smcv.dao.usuario.UsuarioDao.carregar(UsuarioDao.java:52)
	at smcv.controller.UsuarioController.login(UsuarioController.java:95)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:50)
	... 40 more
Caused by: java.sql.SQLException: The value supplied cannot be converted to INTEGER.
	at net.sourceforge.jtds.jdbc.Support.convert(Support.java:653)
	at net.sourceforge.jtds.jdbc.JtdsResultSet.getInt(JtdsResultSet.java:656)
	at net.sourceforge.jtds.jdbc.JtdsResultSet.getInt(JtdsResultSet.java:983)
	at org.hibernate.type.IntegerType.get(IntegerType.java:51)
	at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:184)
	at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:173)
	at org.hibernate.type.AbstractType.hydrate(AbstractType.java:105)
	at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2114)
	at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1404)
	at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1332)
	at org.hibernate.loader.Loader.getRow(Loader.java:1230)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:603)
	at org.hibernate.loader.Loader.doQuery(Loader.java:724)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
	at org.hibernate.loader.Loader.doList(Loader.java:2232)
	... 53 more

vlw

5 Respostas

G
java.sql.SQLException: The value supplied cannot be converted to INTEGER.

Há algum problema na base de dados. Provavelmente foi alterado o tipo do campo.

leandronsp

como é o tipo de dado da senha no seu códgo java?
e como é o tipo do campo no banco?

Hebert_Coelho

Cara, provavelmente seu campo está com um valor não Integer. Não deve estar sequencial, not null, sei lah.

Vasculha lá que tu acha.

C

está certo os tipos na classe e no banco

@Entity
@Table(name = "Usuario")
public class Usuario implements Serializable{

	private static final long serialVersionUID = 4409854691201666279L;
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long id;
	@OneToOne
	private Funcionario funcionario;
	@Column(name = "login", length = 20, nullable = false, unique=true)
	private String login;
	@Column(name = "senha", length = 20, nullable = false)
	private String senha;
	@OneToOne
	private Unidadesaude unidadeSaudePadrao;

banco

id: numeric 9(19,0)
login: varchar(20)
senha: varchar(20)
funcionario_id: numeric 9(19,0)
unidadeSaudePadrao_id: numeric 9(19,0)

eu fiz alterações na tabela municipio, alterei dois campos para inteiro, mas não a chave primaria, mas a tabela esta relacionada com funcionario, e esta com login, será que é isso?, mas as alterações foram feitas na classe tambem e os modulos de municipio estão funcionando corretamente.

vlw

C

descobri, havia um campo area que estava com o tipo errado.

vlw pelas dicas

Criado 17 de julho de 2010
Ultima resposta 18 de jul. de 2010
Respostas 5
Participantes 4