Já tentei de várias formas, mas não estou conseguindo salvar 1..n.
Banco de dados: PostgreSQL
- Tabelas
CREATE TABLE venda
(
id serial NOT NULL,
data date,
total numeric(15,2),
desconto numeric(15,2),
acrescimo numeric(15,2),
clienteid bigint,
situacao smallint,
subtotal numeric(15,2),
hora time without time zone NOT NULL DEFAULT now(),
CONSTRAINT venda_pkey PRIMARY KEY (id ),
CONSTRAINT venda_clienteid_fkey FOREIGN KEY (clienteid) REFERENCES cliente (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION
)
CREATE TABLE vendaitem
(
id serial NOT NULL,
vendaid bigint NOT NULL,
produtoid bigint,
qtde numeric(5,2),
valor numeric(15,2),
CONSTRAINT vendaitem_pkey PRIMARY KEY (id ),
CONSTRAINT vendaitem_produtoid_fkey FOREIGN KEY (produtoid) REFERENCES produto (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT vendaitem_vendaid_fkey FOREIGN KEY (vendaid) REFERENCES venda (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION
)
- Classes
public virtual long ID { get; set; }
......
public virtual IList<VendaItem> VendaItem { get; set; }
}
public virtual long ID { get; set; }
public virtual long VendaID { get; set; }
public virtual long ProdutoID { get; set; }
public virtual decimal Qtde { get; set; }
public virtual decimal Valor { get; set; }
public virtual Venda Venda { get; set; }
public virtual Produto Produto { get; set; }
}
- Mapeamentos
public class VendaMap : ClassMap<Venda>
{
public VendaMap()
{
Id(x => x.ID);
Map(x => x.ClienteID);
Map(x => x.Hora);
Map(x => x.Data);
Map(x => x.SubTotal);
Map(x => x.Total);
Map(x => x.Desconto);
Map(x => x.Acrescimo);
Map(x => x.Situacao);
References(x => x.Cliente).Column("clienteid").ReadOnly().Not.LazyLoad();
HasMany(x => x.VendaItem).Cascade.AllDeleteOrphan().KeyColumn("id");
Table("venda");
}
}
public class VendaItemMap : ClassMap<VendaItem>
{
public VendaItemMap()
{
Id(x => x.ID);
//Map(x => x.VendaID);
Map(x => x.ProdutoID);
Map(x => x.Qtde);
Map(x => x.Valor);
References(x => x.Venda).Column("vendaid");
References(x => x.Produto).Column("produtoid").ReadOnly().Not.LazyLoad();
Table("vendaitem");
}
}
Está dando o seguinte erro :
{"ERRO: 23502: valor nulo na coluna \"vendaid\" viola a restrição não-nula"}