package app1.simple;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Example;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.codahale.metrics.annotation.Timed;
import com.google.common.collect.ImmutableList;
@Component
public class DataService {
private final SessionFactory sf;
@Autowired
public DataService(SessionFactory factory) {
sf = factory;
}
@Timed
public void createEntity(String name, String value) {
final Session session = sf.openSession();
session.save(new Entity(name, value));
session.flush();
}
@Timed
public ImmutableList<Entity> findAll(String name){
return ImmutableList.copyOf(searchByName(name));
}
private List<Entity> searchByName(String name) {
final Session session = sf.openSession();
Criteria criteria = session.createCriteria(Entity.class)
.add(Example.create(new Entity(name)));
return criteria.list();
}
}