Erro na validação [ RESOLVIDO ]

11 respostas
L

e ae pessoa to com problemas na validação de um login com senha e usuario

segue código

public void actionPerformed(ActionEvent arg0) {

				LoginDAO logindao = new LoginDAO();

				try {

					if (logindao.validarSenha(txtSenha.getText(),txtUsuario.getText())) {
						JOptionPane.showMessageDialog(null, "usuário logado!");
						frmPrincipal frmprincipal = new frmPrincipal();
						frmprincipal.show();
						frmLogin.this.dispose();
					} else {
						JOptionPane.showMessageDialog(null, "SENHA INCORRETA!",
								"Erro", JOptionPane.ERROR_MESSAGE);
					}
				} catch (Exception e) {
					JOptionPane.showMessageDialog(null,
							"Erro :" + e.getMessage());
				}

			}
com o seguinte método validar senha
public boolean validarSenha(String senha, String usuario) {
		Criteria c = session.createCriteria(Login.class);
		c.add(Restrictions.ilike("usuario", usuario));
		c.add(Restrictions.ilike("senha", senha));
		return c.uniqueResult()!= null;
	}

está gerando a seguinte exception

00:56:37 WARN [JDBCExceptionReporter] SQL Error: 1054, SQLState: 42S22
00:56:37 ERROR [JDBCExceptionReporter] Unknown column 'this_.id' in 'field list'

alguem pode ajudarrr?

11 Respostas

worldsoft

lmqds

Essa exeption é por que não foi encontrado a coluna id na lista de campos de sua tabela.

Post sua classe modelo e se possivel a estrutura de sua tabela Login.

V

acredito que é no seu mapeamento do hibernate…posta seu .hbm.xml

L

isso mesmo ele não estava encontrando o id na tabela, mas coloquei nomes iguais e passou certin
ai deu outro erro: query did not return unique result:2

<hibernate-configuration>
	<session-factory>

		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/dbTeste</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.format_sql">true</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
		<mapping class="Model.Login" />

	</session-factory>
</hibernate-configuration>
V

Sua query ta retornando dois registros…

L

então o Criteria não pode retornar dois registros? tem a algum método que possa comparar dois dados?

R

O correto seria assim:

c.add(Restrictions.eq("usuario", usuario));  
    c.add(Restrictions.eq("senha", senha));
L

contiinua com o mesmo erro. “query did not return a unique result:2” e o mais confuso de tudo alguns valores ele valida de forma correta e outros não.

V

verifica no seu bd que deve ter duas linhas com o mesmo login e senha…

L

isso vitorfarias tinha mesmo duas linhas com os mesmos dados…
agora funciona legal.

vlw

V

Coloca um RESOLVIDO no titulo do forum, basta editar o seu primeiro post e alterar o Titulo

L

prontinho, Obrigada!

Criado 24 de junho de 2011
Ultima resposta 28 de jun. de 2011
Respostas 11
Participantes 4