Bom dia pessoal.
Estou com um seguinte proglema e gostaria de contar com a ajuda de voces ai para que eu poss achar uma boa solução.
Negócio é o seguinte.
Estou desenvolvendo um projeto aqui para o lugar que eu trabalho, e estou criando um formulario, via web, simples, que faz o cadastro, de um processoSRD(um registro interno da minha instituição). esse tabela do cadastro do meu banco de dados, esta ligada, a minha tabela aluno, atravéz de uma chave estrangeira e talz. pois bem qual o problema.
Quero que quando o usuario do sistema clicar em cadastra o processo SRD, o sistema gere um numeto, com ((codigo do aluno) + (curso do aluno) + (ano corrente)), que ja foram cadastrados antes, e armazene num campo do meu banco de dados, da tabela processo, que chama processosrd. exemplo do numero: 001.002.2009.
vou colocar embaixo os codigos das minhas classe, e formularios, e gostaria de contar com a ajuda de todos, atenciosamente.
João Victor.
Códigos.
DAO.java
package br.edu.fsj.registrodediplomas.dao;
import java.util.List;
import org.hibernate.Session;
public class Dao<T> {
private Session session;
private final Class classe;
public Dao(Session session, Class classe) {
this.session =session;
this.classe=classe;
}
public void adiciona(T u){
this.session.save(u);
}
public void remove(T u){
this.session.delete(u);
}
public void atualiza (T u){
this.session.merge(u);
}
public List<T> listaTudo(){
return this.session.createCriteria(this.classe).list();
}
public T procuranome(String nome) {
return (T) session.load(this.classe, nome);
}
public T procura(Long id) {
return (T) session.load(this.classe, id);
}
protected Session getSession(){
return session;
}
}
ProcessosrdLogic.java
package br.edu.fsj.registrodediplomas.logic;
import java.util.List;
import org.vraptor.annotations.Component;
import org.vraptor.annotations.InterceptedBy;
import br.edu.fsj.registrodediplomas.dao.DaoFactory;
import br.edu.fsj.registrodediplomas.modelo.Aluno;
import br.edu.fsj.registrodediplomas.modelo.Processosrd;
import br.edu.fsj.registrodediplomas.registro.DaoInterceptor;
@Component("processosrd")
@InterceptedBy(DaoInterceptor.class)
public class ProcessosrdLogic {
private final DaoFactory daoFactory;
private Processosrd processosrd;
private List<Processosrd> processosrds;
public ProcessosrdLogic(DaoFactory daoFactory) {
this.daoFactory = daoFactory;
}
// formulario para adicao
public void formulario() {
}
// formulario para edicaos
public void editar(Processosrd processosrd) {
// carrega os dados no banco para edicao
this.processosrd = this.daoFactory.getProcessoSRDDao().procura(processosrd.getId());
}
// Adiciona um processosrd novo ou atualiza se for edicao
public void armazena(Processosrd processosrd) {
this.daoFactory.beginTransaction();
// this.processosrd.teste();
this.daoFactory.getProcessoSRDDao().atualiza(processosrd);
this.daoFactory.comit();
}
// remove um processosrd
public void remove(Processosrd processosrd) {
this.daoFactory.beginTransaction();
this.daoFactory.getProcessoSRDDao().remove(processosrd);
this.daoFactory.comit();
}
// lista todos os processosrds
public void lista() {
this.processosrds = this.daoFactory.getProcessoSRDDao().listaTudo();
}
// lista todos os processosrds
public void listaprincipal() {
this.processosrds = this.daoFactory.getProcessoSRDDao().listaTudo();
}
// getter pro processosrd
public Processosrd getProcessosrd() {
return processosrd;
}
// getter pra lista de processosrds
public List<Processosrd> getProcessosrds() {
return processosrds;
}
public List<Aluno> getListadealunos() {
return this.daoFactory.getAlunoDao().listaTudo();
}
}
package br.edu.fsj.registrodediplomas.modelo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OrderBy;
@Entity
public class Processosrd {
@Id
@GeneratedValue
private Long id;
private String processosrd;
private String numeroregistro;
private String dataregistro;
@ManyToOne
@OrderBy("nome")
private Aluno aluno;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getProcessosrd() {
return processosrd;
}
public void setProcessosrd(String processosrd) {
this.processosrd = processosrd;
}
public String getNumeroregistro() {
return numeroregistro;
}
public void setNumeroregistro(String numeroregistro) {
this.numeroregistro = numeroregistro;
}
public String getDataregistro() {
return dataregistro;
}
public void setDataregistro(String dataregistro) {
this.dataregistro = dataregistro;
}
public Aluno getAluno() {
return aluno;
}
public void setAluno(Aluno aluno) {
this.aluno = aluno;
}
public void teste(){
this.processosrd = "" + this.getDataregistro();
}
}
DaoInterceptor.java
package br.edu.fsj.registrodediplomas.registro;
import org.vraptor.Interceptor;
import org.vraptor.LogicException;
import org.vraptor.LogicFlow;
import org.vraptor.annotations.Out;
import org.vraptor.view.ViewException;
import br.edu.fsj.registrodediplomas.dao.DaoFactory;
public class DaoInterceptor implements Interceptor{
private final DaoFactory factory = new DaoFactory();
public void intercept(LogicFlow flow) throws LogicException, ViewException {
//executa a logica
flow.execute();
//se sobrou transsacao sem comitar faz rollback
if (factory.hasTransaction()){
factory.rollback();
}
factory.close();
}
@Out(key="br.edu.fsj.registrodediplomas.dao.DaoFactory")
public DaoFactory getFactory(){
return factory;
}
}
formulario.ok.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title></title>
</head>
<body bgcolor="#CCCCCC">
<h1>Cadastro de Processo</h1>
<form action="processosrd.armazena.logic" method="post">
<input type="hidden" name="processosrd.id" value="${processosrd.id}"/>
Data de Registro:
<input type="text" size="30" name="processosrd.dataregistro" value="${processosrd.dataregistro}"/><br/>
ProcessoSRD:
<input type="text" size="30" name="processosrd.processosrd" value="${processosrd.processosrd}"/><br/>
Aluno:
<select name="processosrd.aluno.id">
<c:forEach var="aluno" items="${listadealunos}">
<option value="${aluno.id}"
<c:if test="${processosrd.aluno.id == aluno.id}">selected="true"</c:if>
>
${aluno.nome} 00${aluno.id} . 2009 . 00${aluno.curso.id}
</option>
</c:forEach>
</select>
<br />
Número do Registro:
<input type="text" size="30" name="processosrd.numeroregistro" value="${processosrd.numeroregistro}"/><br/>
<br>
<input type="submit" onClick="alert()"/>
</form>
<IFRAME frameborder="0" scrolling="no" src="processosrd.listaprincipal.logic" width="100%" height="550"></IFRAME>
</body>
</html>
Atenciosamente
João Victor
Me de uma força ai galera.