Jump to content

fernandopaiva

Members
  • Content count

    33
  • Joined

  • Last visited

Community Reputation

0 Comum

About fernandopaiva

  1. fernandopaiva

    Ajuda com e-commerce

    Estou tentando desenvolver um pequeno e-commerce para minha lojinha, nada muito sofisticado, quero apenas fazer venda. O problema é que nunca desenvolvi um e-commerce e estou tentando fazer a parte de produtos/estoque para que eu consiga controlar de maneira simples o estoque na hora da venda do produto e andei procurando alguns exemplos e não encontrei. Gostaria de uma dica se estou no caminho certo ? Classe de Produto [Serializable] public class Produto{ public virtual long id { get; set; } public virtual String descricao { get; set; } public virtual String descDetalhada { get; set; } public virtual Subcategoria subcategoria { get; set; } public virtual int status { get; set; } public Produto(){ } public override string ToString(){ return descricao; } } Classe Estoque [Serializable] public class Estoque{ public virtual long id { get; set; } public virtual IList<Produto> produtos { get; set; } public virtual Cor cor { get; set; } public virtual Tamanho tamanho { get; set; } public virtual int qtdEstoque { get; set; } public virtual decimal valorCompra { get; set; } public virtual decimal valorAntigo { get; set; } public virtual decimal valorVenda { get; set; } public Estoque(){ produtos = new List<Produto>(); } }
  2. fernandopaiva

    modelagem

    opa Motta, obrigado pela sua atenção. eh o seguinte. os requisitos sao: 1) Um aluno pode estar Matriculado em muitos Projetos 2) Um Aluno pode realizar diversas Modalidades 3) Um Aluno pode estar Matriculado em várias Turmas 4) Um Aluno pode realizar as Modalidades em varios Nucleos 5) Um Projeto pode ter varias Modalidades 6) Um Nucleo(local do projeto) pode conter varios Projetos 7) Uma UnidadeEscolar pode conter varios Professores 8) Um Aluno pode estar em apenas uma UnidadeEscolar 9) Um Professor pode dar aulas para varias Turmas Se puder ajudar, agradeço
  3. fernandopaiva

    modelagem

    Salve galera Estou montando um projetinho pra apresentar na faculdade. O projeto consiste em controlar Alunos matriculados, que fazem parte de um ou mais projetos e nesses projetos possuem modalidades diversas que o aluno pode praticar. Estou fazendo meu modelo ER como na imagem. Se puderem me ajudar, agradeço. Eu sou péssimo em modelagem, caso tenham algumas dicas para aprender modelagem eu agradeço.
  4. fernandopaiva

    JPA persistir ManyToMany com Classe Associativa ?

    Resolvido. @Entity @Table(name="aluno") public class Aluno implements Serializable{ private static final long serialVersionUID = 1L; @Id @GeneratedValue private Integer id; //informacoes gerais @NotNull private String nome; //historico de graduacao @OneToMany(mappedBy = "aluno", cascade = CascadeType.ALL, fetch = FetchType.LAZY) private List<HistoricoDeGraduacao> listaHistoricoGraduacao; public Aluno() { } public void addListaHistoricoGraduacao(HistoricoDeGraduacao hdg){ if(listaHistoricoGraduacao == null){ listaHistoricoGraduacao = new ArrayList<HistoricoDeGraduacao>(); } listaHistoricoGraduacao.add(hdg); } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public List<HistoricoDeGraduacao> getListaHistoricoGraduacao() { return listaHistoricoGraduacao; } public void setListaHistoricoGraduacao(List<HistoricoDeGraduacao> listaHistoricoGraduacao) { this.listaHistoricoGraduacao = listaHistoricoGraduacao; } @Override public int hashCode() { int hash = 7; return hash; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final Aluno other = (Aluno) obj; return true; } } @Entity @Table(name="graduacao") public class Graduacao implements Serializable{ private static final long serialVersionUID = 1L; @Id @GeneratedValue private Integer id; @NotNull @Column(unique = true) private String graduacao; @ElementCollection @CollectionTable(name="graus_graduacao", joinColumns=@JoinColumn(name="id_graduacao")) @Column(name="graus") private List<String> graus; @OneToMany(mappedBy = "graduacao", cascade = CascadeType.ALL, fetch = FetchType.LAZY) private List<HistoricoDeGraduacao> listaHistoricoGraduacao; public Graduacao() { } public Graduacao(Integer id, String graduacao, List<String> graus) { this.id = id; this.graduacao = graduacao; this.graus = graus; } /** adiciona historicodegraduacao a graduacao */ public void addHistoricoDeGraduacao(HistoricoDeGraduacao hdg){ if(listaHistoricoGraduacao == null){ listaHistoricoGraduacao = new ArrayList<HistoricoDeGraduacao>(); } listaHistoricoGraduacao.add(hdg); } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getGraduacao() { return graduacao; } public void setGraduacao(String graduacao) { this.graduacao = graduacao; } public List<String> getGraus() { return graus; } public void setGraus(List<String> graus) { this.graus = graus; } public List<HistoricoDeGraduacao> getListaHistoricoGraduacao() { return listaHistoricoGraduacao; } public void setListaHistoricoGraduacao(List<HistoricoDeGraduacao> listaHistoricoGraduacao) { this.listaHistoricoGraduacao = listaHistoricoGraduacao; } public String toString(){ return graduacao; } } @Embeddable public class HistoricoDeGraduacaoId implements Serializable { private static final long serialVersionUID = 1L; @JoinColumn(name="EMP_ID") private Integer id; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Override public boolean equals(Object obj) { return super.equals(obj); //To change body of generated methods, choose Tools | Templates. } @Override public int hashCode() { return super.hashCode(); //To change body of generated methods, choose Tools | Templates. } } @Entity public class HistoricoDeGraduacao implements Serializable { private static final long serialVersionUID = 1L; @EmbeddedId HistoricoDeGraduacaoId pk; @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name = "id_aluno") private Aluno aluno; @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name="id_graduacao") private Graduacao graduacao; private String grau; @Temporal(TemporalType.DATE) private Date dataGraduou; public HistoricoDeGraduacao() { } public void begin(){ //instancia pk pk = new HistoricoDeGraduacaoId(); //aqui insiro o id pk.setId(new HistoricoDeGraduacaoDAO().getIndex()); } public HistoricoDeGraduacaoId getPk() { return pk; } public void setPk(HistoricoDeGraduacaoId pk) { this.pk = pk; } public Aluno getAluno() { return aluno; } public void setAluno(Aluno aluno) { this.aluno = aluno; } public Graduacao getGraduacao() { return graduacao; } public void setGraduacao(Graduacao graduacao) { this.graduacao = graduacao; } public String getGrau() { return grau; } public void setGrau(String grau) { this.grau = grau; } public Date getDataGraduou() { return dataGraduou; } public void setDataGraduou(Date dataGraduou) { this.dataGraduou = dataGraduou; } @Override public int hashCode() { int hash = 3; hash = 59 * hash + Objects.hashCode(this.aluno); hash = 59 * hash + Objects.hashCode(this.graduacao); return hash; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final HistoricoDeGraduacao other = (HistoricoDeGraduacao) obj; if (!Objects.equals(this.aluno, other.aluno)) { return false; } if (!Objects.equals(this.graduacao, other.graduacao)) { return false; } return true; } } //aqui meu jframe com seus componentes, pegando valores montando tudo para ser salvo historico.setDataGraduou(jdp_dataGraduou.getDate()); historico.setGrau(jl_graus.getSelectedValue().toString()); //pega graduacao do jcombobox Graduacao g = (Graduacao)cbx_graduacao.getSelectedItem(); historico.setGraduacao(g); //bean aluno historico.setAluno(bean); //add a listas bean.addListaHistoricoGraduacao(historico); g.addHistoricoDeGraduacao(historico); //inicia instancia de pk e insere o proximo id historico.begin(); //salva tudo new HistoricoDeGraduacaoDAO().update(historico); //aqui meu DAO public class HistoricoDeGraduacaoDAO { private EntityManager em; public HistoricoDeGraduacaoDAO(){ em = Persistencia.getEntityManager(); } /** pega o ultimo valor da tabela HistoricoDeGraduacao e adiciona + 1 para o proximo indice */ public Integer getIndex(){ int count = 0; Query query = em.createQuery("SELECT MAX(hdg.pk.id) FROM HistoricoDeGraduacao hdg"); if(query.getSingleResult() == null){ ++count; }else{ count = (int)query.getSingleResult() + 1; } return count; } /** executa update */ public void update(HistoricoDeGraduacao historico){ try{ em.getTransaction().begin(); em.merge(historico); em.getTransaction().commit(); }catch(PersistenceException e){ JOptionPane.showMessageDialog(null, e.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE); }finally{ em.close(); } } }
  5. Salve galera Estou tentando persistir um relacionamento @ManyToMany com uma Entidade Associativa e o que acontece eh que quando persisto o valor eh sempre atualizado no banco, e eu quero adicionar novos valores. quero que fique assim. id_aluno | id_graduacao | grau | datagraduou | 1 1 primeiro 2014-08-02 1 1 segundo 2014-08-02 1 1 terceiro 2014-08-02 para isso, criei as seguintes entidades @Entity @Table(name="aluno") public class Aluno implements Serializable{ private static final long serialVersionUID = 1L; @Id @GeneratedValue private Integer id; //informacoes gerais @NotNull private String nome; //historico de graduacao @OneToMany(mappedBy = "aluno") private List<HistoricoDeGraduacao> listaHistoricoGraduacao; public Aluno(){} /** adiciona lista de HistoricoDeGraduacao para aluno */ public void addListaHistoricoGraduacao(HistoricoDeGraduacao hdg){ if(listaHistoricoGraduacao == null){ listaHistoricoGraduacao = new ArrayList<HistoricoDeGraduacao>(); } listaHistoricoGraduacao.add(hdg); } public List<HistoricoDeGraduacao> getListaHistoricoGraduacao() { return listaHistoricoGraduacao; } ///gets e sets @Entity @Table(name="graduacao") public class Graduacao implements Serializable{ private static final long serialVersionUID = 1L; @Id @GeneratedValue private Integer id; @NotNull @Column(unique = true) private String graduacao; @ElementCollection @CollectionTable(name="graus_graduacao", joinColumns=@JoinColumn(name="id_graduacao")) @Column(name="graus") private List<String> graus; @OneToMany(mappedBy = "graduacao") private List<HistoricoDeGraduacao> listaHistoricoGraduacao; public Graduacao() { } /** adiciona historicodegraduacao a graduacao */ public void addHistoricoDeGraduacao(HistoricoDeGraduacao hdg){ if(listaHistoricoGraduacao == null){ listaHistoricoGraduacao = new ArrayList<HistoricoDeGraduacao>(); } listaHistoricoGraduacao.add(hdg); } public List<HistoricoDeGraduacao> getListaHistoricoGraduacao() { return listaHistoricoGraduacao; } //gets e sets public class HistoricoDeGraduacaoId implements Serializable { private static final long serialVersionUID = 1L; private Aluno aluno; private Graduacao graduacao; public Aluno getAluno() { return aluno; } public void setAluno(Aluno aluno) { this.aluno = aluno; } public Graduacao getGraduacao() { return graduacao; } public void setGraduacao(Graduacao graduacao) { this.graduacao = graduacao; } @Entity @IdClass(HistoricoDeGraduacaoId.class) public class HistoricoDeGraduacao implements Serializable { private static final long serialVersionUID = 1L; @Id @ManyToOne @JoinColumn(name = "id_aluno") private Aluno aluno; @Id @ManyToOne @JoinColumn(name="id_graduacao") private Graduacao graduacao; private String grau; @Temporal(TemporalType.DATE) private Date dataGraduou; public HistoricoDeGraduacao() { } //gets e sets //DAO de persistencia /** executa update */ public void update(){ em.getTransaction().begin(); Aluno a = new Aluno(); a.setId(1);//aluno ja possui Id Graduacao g = new Graduacao(); g.setId(1); //graduacao ja possui Id HistoricoDeGraduacao hdg = new HistoricoDeGraduacao(); hdg.setAluno(a); hdg.setGraduacao(g); hdg.setDataGraduou(new Date()); hdg.setGrau("PRIMEIRO"); a.addHistoricoDeGraduacao(hdg); g.addHistoricoDeGraduacao(hdg); em.persist(hdg); em.getTransaction().commit(); HistoricoDeGraduacao hdg1 = new HistoricoDeGraduacao(); hdg1.setAluno(a); hdg1.setGraduacao(g); hdg1.setDataGraduou(new Date()); hdg1.setGrau("SEGUNDO"); a.addHistoricoDeGraduacao(hdg1); g.addHistoricoDeGraduacao(hdg1); em.persist(hdg1); em.getTransaction().commit(); HistoricoDeGraduacao hdg2 = new HistoricoDeGraduacao(); hdg2.setAluno(a); hdg2.setGraduacao(g); hdg2.setDataGraduou(new Date()); hdg2.setGrau("TERCEIRO"); a.addHistoricoDeGraduacao(hdg2); g.addHistoricoDeGraduacao(hdg2); em.persist(hdg2); em.getTransaction().commit(); em.close(); } Usando persist não funciona, usando merge funciona o registro eh adicionado porem, depois de adicionado o registro, sempre eh feito o update no msm registro, por exemplo: O registro "PRIMEIRO", troca pra "SEGUNDO" e depois para "TERCEIRO", ao inves de serem adicionados. Como resolver isso ?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.