Galera tow precisando mepear o seguinte relacionamento: Pedido e ItensPedido. Para qdo eu gravar um pedido, os seus respectivos itens tb serem gravados.
Pedido
codigo (pk)
vendedor (pk)
data
obs
como podem ver tenho uma chave composta nessa tabela.
ItensPedido
codigo (PK) (FK)
vendedor (PK) (FK)
produto (PK) (FK)
quant
valor
como podem ver temos outra chave composta que tb é chave estrangeira de Pedido.
fiz os arquivos de mapeamentos asssim: porém esta dando erro… se alguém puder me ajudar a solucionar… Obrigado!!
Mapeamento Pedido
[code]
<class name="Pedido">
<!-- <composite-id name="compositeId" class="Pedido">
<key-property name="codigo"/>
<key-many-to-one name="vendedor" class="Vendedor"/>
</composite-id> -->
<id name="codigo">
<generator class="increment"/>
</id>
<property name="dataPedido"/>
<property name="dataFechamento"/>
<property name="observacao"/>
<set name="itensPedido" lazy="false">
<key column="codigo"/>
<one-to-many class="ItensPedido"/>
</set>
<many-to-one name="vendedor" class="Vendedor"/>
</class>
[/code]
Mapeamento Itens
[code]
<class name="ItensPedido">
<composite-id name="codigo" class="ItensPedido">
<key-many-to-one name="codigo" class="Pedido"/>
<key-many-to-one name="vendedor" class="Pedido"/>
<key-many-to-one name="produto" class="Produto" />
</composite-id>
<!-- <id name="codigo">
<generator class="foreign">
<param name="property">codigo</param>
</generator>
</id>-->
<property name="quantidade"/>
<property name="valor"/>
<property name="quantVendida" column="quantidadeVendida"/>
<property name="quantDevolvida" column="quantidadeDevolvida"/>
<!-- <many-to-one name="codigo" class="Pedido"/>
<many-to-one name="produto" class="Produto" insert="false" update="false"/>
<many-to-one name="vendedor" class="Vendedor" insert="false" update="false"/>-->
</class>
[/code]
passos
Dezembro 26, 2006, 11:21pm
#2
passos, olhei esse tutorial do link… mas não consegui resolver o problema… teria como vc me mostrar com os arquivos de mapeamento que postei?
Obrigado!
Galera fiz umas modificações nos arquivos de mapeamento, agora acho q soh tah faltando um empurraozinho pra resolver o erro q esta dando.
Vou postar as Classes tb pra vc entenderem melhor…
[code]public class Pedido implements Serializable
{
private Integer idPedido;
private Vendedor vendedor;
private Calendar dataPedido;
private Calendar dataFechamento;
private String observacao;
private Set<ItensPedido> itensPedido;
public Integer getIdPedido() {
return idPedido;
}
public void setIdPedido(Integer codigo) {
this.idPedido = codigo;
}
public Calendar getDataFechamento() {
return dataFechamento;
}
public void setDataFechamento(Calendar dataFechamento) {
this.dataFechamento = dataFechamento;
}
public Calendar getDataPedido() {
return dataPedido;
}
public void setDataPedido(Calendar dataPedido) {
this.dataPedido = dataPedido;
}
public String getObservacao() {
return observacao;
}
public void setObservacao(String observacao) {
this.observacao = observacao;
}
public Vendedor getVendedor() {
return vendedor;
}
public void setVendedor(Vendedor vendedor) {
this.vendedor = vendedor;
}
public Set<ItensPedido> getItensPedido() {
return itensPedido;
}
public void setItensPedido(Set<ItensPedido> itensPedido) {
this.itensPedido = itensPedido;
}[/code]
[code]public class ItensPedido implements Serializable {
private Integer idIten;
private Vendedor vendedor;
private Integer quantidade;
private double valor;
private Integer quantVendida;
private Integer quantDevolvida;
private Produto produto;
private String observacao;
public String getObservacao() {
return observacao;
}
public void setObservacao(String observacao) {
this.observacao = observacao;
}
public Produto getProduto() {
return produto;
}
public void setProduto(Produto produto) {
this.produto = produto;
}
public Integer getQuantDevolvida() {
return quantDevolvida;
}
public void setQuantDevolvida(Integer quantDevolvida) {
this.quantDevolvida = quantDevolvida;
}
public Integer getQuantidade() {
return quantidade;
}
public void setQuantidade(Integer quantidade) {
this.quantidade = quantidade;
}
public Integer getQuantVendida() {
return quantVendida;
}
public void setQuantVendida(Integer quantVendida) {
this.quantVendida = quantVendida;
}
public double getValor() {
return valor;
}
public void setValor(double valor) {
this.valor = valor;
}
public Integer getIdIten() {
return idIten;
}
public void setIdIten(Integer codigo) {
this.idIten = codigo;
}
public Vendedor getVendedor() {
return vendedor;
}
public void setVendedor(Vendedor vendedor) {
this.vendedor = vendedor;
}
[/code]
[code]
<class name="Pedido">
<composite-id name="idPedido" class="Pedido">
<key-property name="idPedido" column="codigo"/>
<key-many-to-one name="vendedor" class="Vendedor" column="vendedor"/>
</composite-id>
<property name="dataPedido" type="calendar"/>
<property name="dataFechamento" type="calendar"/>
<property name="observacao"/>
<set name="itensPedido" inverse="true" lazy="true" cascade="all">
<key>
<column name="codigo"/>
<column name="vendedor"/>
</key>
<one-to-many class="ItensPedido"/>
</set>
</class>
[/code]
[code]
<class name="ItensPedido">
<composite-id name="idIten" class="ItensPedido">
<key-many-to-one name="idIten" class="Pedido">
<column name="codigo"/>
<column name="vendedor"/>
</key-many-to-one>
<key-many-to-one name="produto" class="Produto" column="produto"/>
</composite-id>
<property name="quantidade"/>
<property name="valor"/>
<property name="quantVendida" column="quantidadeVendida"/>
<property name="quantDevolvida" column="quantidadeDevolvida"/>
<property name="observacao" column="observacao"/>
</class>
[/code]
Agradeço… quem puder ajudar…
galera o erro que está dando… tinha esquecido de postar…
java.lang.ClassCastException: java.lang.Integer
at org.hibernate.type.ComponentType.toLoggableString(ComponentType.java:377)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:113)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at dao.HibernateDAOPedido.gravar(HibernateDAOPedido.java:40)
at controle.FacadePedido.gravar(FacadePedido.java:36)
at controle.Teste.main(Teste.java:31)
Conto com vcs… valew!!
clauber.ferreira:
…
Cara não repita os seus tópicos… as cópias serão apagadas.
Obrigado!
Pessoal foi mal ter repitido o topico pelas sessões do forum… é tow desesperado… precisando acertar esse erro…