Load an entity
There are two forms to get an entity with the methods load() or get().
public Category getCategory(Long catId) throws DataAccessException {
There are two forms to get an entity with the methods load() or get().
public Category getCategory(Long catId) throws DataAccessException {
return (Category) this.getSessionFactory().getCurrentSession()
.load(Category.class, catId); }
public Category getCategory(Long catId) throws DataAccessException {
return (Category) this.getSessionFactory().getCurrentSession()
.get(Category.class, catId); }
The difference are:
- load()
- Throws an exception if there isn't any row.
- Has performane benefits.
- get()
- Return null if there isn't any row.
HibernateTemplate - Using Parameters with findByNamedParam
In case of use only one parameter, you need the query, parameter name and the value.public List<ArtEntity> getArtworkInCategory(Long catId)
throws DataAccessException {
return this.getHibernateTemplate().findByNamedParam(
"select art from Category cat " +
"join cat.artEntities art " +
"where cat.id = :catId ",
"catId", catId
);
}In case of many parameters, you need the query, array with the parameters and the array with corresponding valuespublic Person authenticatePerson(String username, String password)
throws DataAccessException, AuthenticationException {
List<Person> validUsers = this.getHibernateTemplate().findByNamedParam(
"select people from Person people where" +
"people.username = :username " +
"and people.password = :password",
new String[] {"username", "password"},
new String[] {username, password }
);
if (validUsers == null || validUsers.size() <= 0) {
throw new AuthenticationException("No users found");
} else {
return validUsers.get(0);
}
}
Hibernate Core APIs - Using Parameters
public Person authenticatePerson(String username, String password)
throws DataAccessException, AuthenticationException {
Person validUser =
(Person) this.getSessionFactory().getCurrentSession().createQuery(
"select people from Person people where" +
"people.username = :username " +
"and people.password = :password")
.setString("username", username)
.setString("password", password)
.uniqueResult()
);
if (validUser == null) {
throw new AuthenticationException("No users found");} else {
return validUser;
}
}
Comentarios
Publicar un comentario