Boa noite pessoal, gostaria de saber como crio um metodo do hibernate para consultar um objeto especifico do banco de dados, por exemplo...
gostaria de passar o parametro cd_usuario no metodo e ele me retornar somente o codigo, nome, login, cpf e email do usuario especifico...
eu tenho uma classe abstrata com o metodo findAll...mas agora queria um metodo especifico, essa é minha classe:
package services;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.flex.remoting.RemotingInclude;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.SessionFactoryUtils;
public class AbstractService<T> {
protected Class<T> classVO = null;
public HibernateTemplate template;
public AbstractService()
{
this.classVO = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
@Autowired
public void setSessionFactory(SessionFactory sessionFactory)
{
template = new HibernateTemplate(sessionFactory);
}
@RemotingInclude
public void add(T t) throws Exception
{
this.template.save(t);
}
@RemotingInclude
public void update(T t)
{
this.template.update(t);
}
@RemotingInclude
public void del(T t)
{
this.template.delete(t);
}
@RemotingInclude
public List<T> findAll()
{
return template.find(String.format("from %s", this.classVO.getName()));
}
@RemotingInclude
public List<T> findByExample(T t)
{
return this.template.findByExample(t);
}
}
e essa é minha classe CadUsuario
package services;
import java.util.List;
import org.springframework.flex.remoting.RemotingDestination;
import org.springframework.flex.remoting.RemotingInclude;
import org.springframework.stereotype.Service;
import valueObjects.CadUsuarioVO;
@Service("CadUsuarioService")
@RemotingDestination(channels={"my-amf"})
public class CadUsuario extends AbstractService<CadUsuarioVO> {
@RemotingInclude
public CadUsuarioVO login(CadUsuarioVO t)
{
List<CadUsuarioVO> usuarios = this.findByExample(t);
if (usuarios.size()==1)
return usuarios.get(0);
return null;
}
@RemotingInclude
@Override
public void add(CadUsuarioVO t) throws Exception
{
//Verifica se o usuário já existe através do email
CadUsuarioVO verificaUsuario = new CadUsuarioVO();
verificaUsuario.setDs_login(t.getDs_login());
List<CadUsuarioVO> usuarios = this.findByExample(verificaUsuario);
if (usuarios.size()==0)
{
super.add(t);
}
else
{
throw new Exception("Login já cadastrado para outro usuário!");
}
}
}
Como posso criar esse método ?