Fiz de acordo com o exemplo e não lista os dados.
Fiz de acordo com o exemplo e não lista os dados.
Oi Anderson, tudo bem ?
Cara você tem algum dado salvo no seu banco de dados?
Olá Anderson, coloca o código pra gente tentar ajudar :)
Sim matheus.
@Repository
@Transactional
public class ReceitaDAO {
@PersistenceContext
private EntityManager manager;
public void gravar(Receita receita){
manager.persist(receita);
}
public List<Receita> listar(){
return manager.createQuery("select p from Receita p", Receita.class).getResultList();
}
}
public class ReceitasController {
@Autowired
private ReceitaDAO receitaDao;
@RequestMapping("/receitas/form")
public String form(){
return "receitas/form";
}
@RequestMapping(value="/receitas", method=RequestMethod.POST)
public String gravar(Receita receita){
System.out.println(receita);
receitaDao.gravar(receita);
return "receitas/ok";
}
@RequestMapping(value="/receitas", method=RequestMethod.GET)
public ModelAndView listar(){
List<Receita> receitas = receitaDao.listar();
ModelAndView modelAndView = new ModelAndView("receitas/lista");
modelAndView.addObject("receitas", receitas);
return modelAndView;
}
}
HTML
<c:forEach items="${receitas }" var="receita">
<tr>
<td>${receita.deposito }</td>
<td>${receita.aplicacao }</td>
<td>${receita.recurso }</td>
</tr>
</c:forEach>
seu código está correto, a configuracão do entity manager está certa ?
Classe Receita
@Entity
@SequenceGenerator(sequenceName = "seq_receita" ,name="seq_receita", initialValue=1, allocationSize=1)
public class Receita {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_receita")
private int id;
private double deposito;
private double aplicacao;
private double recurso;
public double getDeposito() {
return deposito;
}
public void setDeposito(double deposito) {
this.deposito = deposito;
}
public double getAplicacao() {
return aplicacao;
}
public void setAplicacao(double aplicacao) {
this.aplicacao = aplicacao;
}
public double getRecurso() {
return recurso;
}
public void setRecurso(double recurso) {
this.recurso = recurso;
}
@Override
public String toString() {
return "Receita [deposito=" + deposito + ", aplicacao=" + aplicacao + ", recurso=" + recurso + "]";
}
Esta gravando de boa. Na hora de listar ele não lista.
Faz um teste por gentileza ?
Vê o que tem dentro da lista do banco, porque to achando bem estranho. Seu código está impecável, vendo dessa forma.
O hibernate nao estava gerando a tabela, criei na mão mesmo acho legal este esquema de criar tabelas pelo hibernate mais gosto de modelar o banco de outra maneira.
Anderson,
Isso pode ter sido devido a maneira que você configurou o persistence.xml.
Da forma que o hibernate cria, deixa mais parecido com o mundo orientado a objetos, o que não acontece quando é criado na mão. Algumas vezes uma má arquitetura do banco de dados pode deixar a aplicacao web lenta ou comprometida.
Contudo, fico feliz que tenha resolvido o problema :D