Tecnoage 2 de jul. de 2008
vc tem um objeto Vendas no seu cliente? Existe método get para ele?
Tecnoage 2 de jul. de 2008
para dizer a verdade o relacionamento entre cliente e vendas é no mínimo duvidoso… rsrsrs
netShot 2 de jul. de 2008
posta suas classes que fica mais facil.
um exemplo simples seria :
@OneToMany ( cascade = CascadeType . ALL , mappedBy = "idCliente" )
private Set < Vendas > clienteVendas = new HashSet < Vendas > ();
// gets e sets bla bla
heliortf 2 de jul. de 2008
Classe Clientes
package clientes ;
public class Clientes {
private int id ;
private String nome ;
public Clientes ()
{
}
public int getId () {
return id ;
}
public void setId ( int id ) {
this . id = id ;
}
public String getNome () {
return nome ;
}
public void setNome ( String nome ) {
this . nome = nome ;
}
}
Classe Vendas
package vendas ;
public class Vendas {
private int id ;
private int idcliente ;
private java . util . Date datavenda ;
private java . util . Date datarecebimento ;
private double valor ;
private String situacao ;
private java . util . Date data_pg ;
public Vendas ()
{
}
public int getId () {
return id ;
}
public void setId ( int id ) {
this . id = id ;
}
public int getIdcliente () {
return idcliente ;
}
public void setIdcliente ( int idcliente ) {
this . idcliente = idcliente ;
}
public java . util . Date getDatavenda () {
return datavenda ;
}
public void setDatavenda ( java . util . Date datavenda ) {
this . datavenda = datavenda ;
}
public java . util . Date getDatarecebimento () {
return datarecebimento ;
}
public void setDatarecebimento ( java . util . Date datarecebimento ) {
this . datarecebimento = datarecebimento ;
}
public double getValor () {
return valor ;
}
public void setValor ( double valor ) {
this . valor = valor ;
}
public String getSituacao () {
return situacao ;
}
public void setSituacao ( String situacao ) {
this . situacao = situacao ;
}
public java . util . Date getData_pg () {
return data_pg ;
}
public void setData_pg ( java . util . Date data_pg ) {
this . data_pg = data_pg ;
}
}
Banco de dados
clientes ( cod_cli (pk), nome )
vendas ( cod_venda (pk), cod_cli (fk), datavenda, datarecebimento, valor, situacao, data_pg )
Vendas.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name= "vendas.Vendas" table= "vendas" >
<id name= "id" column= "cod_venda" type= "int" >
<generator class= "assigned" />
</id>
<property name= "idcliente" type= "int" column= "cod_cli" />
<property name= "datavenda" type= "date" column= "data_venda" />
<property name= "datarecebimento" type= "date" column= "data_recebimento" />
<property name= "valor" type= "double" column= "valor" />
<property name= "situacao" type= "string" column= "situacao" />
<property name= "data_pg" type= "date" column= "data_pg" />
</class>
</hibernate-mapping>
Clientes.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name= "clientes.Clientes" table= "clientes" >
<id name= "id" column= "cod_cli" >
<generator class= "native" />
</id>
<property name= "nome" type= "string" column= "nome" />
<set name= "vendas" table= "vendas" >
<key column= "cod_cli" />
<one-to-many class= "vendas.Vendas" />
</set>
</class>
</hibernate-mapping>
pq seria duvidoso o relacionamento?
1 cliente tem muitas vendas
one-to-many
eduardo.cerqueira 2 de jul. de 2008
heliortf,
Pela sua lógica, um cliente possui varias vendas, porém nas suas classes isso não esta se refletindo.
Assim, na sua classe cliente, deve ter um atributo Vendas com seus gets e sets e na classe Vendas, seria retirado o atributo de Cliente.
Não sei se você entendeu, mas se achar melhor eu posto o codigo das suas classes modificadas.
abraços
heliortf 2 de jul. de 2008
eh… nao entendi…
se nao for pedir muito da sua paciencia, gostaria q postasse o código sim…
obrigado
eduardo.cerqueira 2 de jul. de 2008
Vamos la,
A sugestão é a seguinte:
Classe Cliente
package clientes ;
public class Clientes {
private int id ;
private String nome ;
private Vendas vendas ;
public Clientes ()
{
}
public int getId () {
return id ;
}
public void setId ( int id ) {
this . id = id ;
}
public String getNome () {
return nome ;
}
public void setNome ( String nome ) {
this . nome = nome ;
}
public void setVendas ( Vendas vendas ){
this . vendas = vendas ;
}
public Vendas getVendas (){
return this . vendas ;
}
}
Classe vendas
package vendas ;
public class Vendas {
private int id ;
private java . util . Date datavenda ;
private java . util . Date datarecebimento ;
private double valor ;
private String situacao ;
private java . util . Date data_pg ;
public Vendas ()
{
}
public int getId () {
return id ;
}
public void setId ( int id ) {
this . id = id ;
}
public java . util . Date getDatavenda () {
return datavenda ;
}
public void setDatavenda ( java . util . Date datavenda ) {
this . datavenda = datavenda ;
}
public java . util . Date getDatarecebimento () {
return datarecebimento ;
}
public void setDatarecebimento ( java . util . Date datarecebimento ) {
this . datarecebimento = datarecebimento ;
}
public double getValor () {
return valor ;
}
public void setValor ( double valor ) {
this . valor = valor ;
}
public String getSituacao () {
return situacao ;
}
public void setSituacao ( String situacao ) {
this . situacao = situacao ;
}
public java . util . Date getData_pg () {
return data_pg ;
}
public void setData_pg ( java . util . Date data_pg ) {
this . data_pg = data_pg ;
}
}
Ta ai, lembramos que é apenas a minha sugestão ok ?
heliortf 3 de jul. de 2008
ok, mas porque tem q ter um getter e setter do tipo Vendas ?
hibernate exige isso?
eduardo.cerqueira 3 de jul. de 2008
Na verdade não, mas você pode colocar somente o Id, eu que costumo fazer dessa forma.
Utilizando JPA por exemplo, você somente faria a anotação nesse atributo dizendo que ele é um cara pertecente a tabela x e pronto, ao persistir um cliente no banco, você ja persistiria os dados das vendas juntos, caso o objeto esteja preenchido.
Na verdade é um simplificador, pelo menos na minha opnião, mas se você quiser, poderá fazer somente com o id.