[Resolvido] Relacionamento One-to-many - Save
20/10/2009 00:00
0
Pessoal estou com seguinte problema, ao gravar um objeto Pai com uma lista de objetos filhos utilizando o save o Groovy me retorna o erro de restrição inválida por causa da chave estrangeira sendo no Oracle a base de dados... alguém pode me ajudar?????

Abaixo o código

class Boleta {

Integer id
Integer number
String serie
String emissionDate
String outDate
String tradeDate
String naturezaOperacao
Integer sales
String vendor
String vendorName
Integer customer
String customerName
Integer createdBy

/* Material Circulante */
Integer startMB
Integer endMB
Integer car
Integer divisor
Integer extension
Integer suportSmall
Integer suportLarge

/* Informações de transporte */
String transportName
String transportFrete
String transportPCar
String transportPState
String transportCNPJ
String transportAddress
String transportCity
String transportState
String transportIE
Integer transportQuantity
String transportEspecie
String transportMarca
Integer transportNumero
Double transportPBruto
Double transportPLiquido
Integer printBoleta

// Linhas da boleta
static hasMany = [line: Line]

static constraints = {
}

static mapping = {
version false
table 'BOL_HEADER'
line joinTable: [name: 'CVH_NET_BOL_LINE',
key: 'BOL_HEADER_ID',
column: 'BOL_LINE_ID']
id column: 'BOL_HEADER_ID', generator: 'sequence', params: [sequence: 'BOL_HEADER_S']
number column: 'BOL_NUMBER'
serie column: 'BOL_SERIE'
emissionDate column: 'BOL_EMISSION_DATE'
outDate column: 'BOL_OUT_DATE'
tradeDate column: 'TRADE_DATE'
naturezaOperacao column: 'CFOP'
sales column: 'SALES_ID'
vendor column: 'VENDOR_SITE_CODE'
vendorName column: 'VENDOR_NAME'
customer column: 'CUSTOMER_NUMBER'
customerName column: 'CUSTOMER_NAME'
createdBy column: 'CREATED_BY'
startMB column: 'BOL_START_MB'
endMB column: 'BOL_END_MB'
car column: 'BOL_QUANTITY_STAND'
divisor column: 'BOL_DIVISOR'
extension column: 'BOL_EXTENSION'
suportSmall column: 'BOL_QUANTITY_SUPORT_SMALL'
suportLarge column: 'BOL_QUANTITY_SUPORT_LARGE'

/* Informações de transporte */
transportName column: 'TRANSPORT_NAME'
transportFrete column: 'TRANSPORT_FRETE'
transportPCar column: 'TRANSPORT_VEICULO'
transportPState column: 'TRANSPORT_VEIC_UF'
transportCNPJ column: 'TRANSPORT_CNPJ'
transportAddress column: 'TRANSPORT_ADDRESS'
transportCity column: 'TRANSPORT_CITY'
transportState column: 'TRANSPORT_UF'
transportIE column: 'TRANSPORT_IE'
transportQuantity column: 'TRANSPORT_QUANTITY'
transportEspecie column: 'TRANSPORT_ESPECIE'
transportMarca column: 'TRANSPORT_MARCA'
transportNumero column: 'TRANSPORT_NUMBER'
transportPBruto column: 'TRANSPORT_PBRUTO'
transportPLiquido column: 'TRANSPORT_PLIQUIDO'
printBoleta column: 'PRINT_BOLETA'
}

}




class Line {

String lote
String codeMC
Integer quantityMC
Inventory item
Integer quantityPacking
Integer quantityUnit
Double price
String quality
String obs1
String obs2
// Integer contact

static belongsTo = [boleta: Boleta]

static constraints = {

}

static mapping = {
version false
table 'CVH_NET_BOL_LINE'
id column: 'BOL_LINE_ID', generator: 'sequence', params: [sequence: 'BOL_LINE_S']
lote column: 'BOL_LOTE'
codeMC column: 'BOL_CODE_MC'
quantityMC column: 'BOL_QUANTITY_MC'
quantityPacking column: 'BOL_QUANTITY_PACKING'
quantityUnit column: 'BOL_QUANTITY_UNIT'
price column: 'BOL_UNIT_PRICE'
quality column: 'BOL_QUALITY'
obs1 column: 'BOL_OBS1'
obs2 column: 'BOL_OBS2'
item column: 'INVENTORY_ITEM_ID'
contact column: 'CONTACT_ID'
boleta column: 'BOL_HEADER_ID'
}
}
Tags: Grails


0
Se você chamar o save no Line antes do Botela funciona?

PS: Porque parte do seu dominio e tabelas estão em ingles e parte em portugues?
Seu DBA é bilingue? <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
21/10/2009 00:00


0
Não, é que alguns termos em inglês fico com preguiça de procurar então eu coloco em português..
rsrsrsrs

Mas o meu problema é esse... não posso gravar o Line antes de gravar a Boleta...
O Hibernate está fazendo isso...
A Boleta é o cabecalho, dentro dela tenho n Lines..
por isso tenho o retorno de erro na restrição de chave estrangeira...
O que posso fazer?
21/10/2009 00:00


0
Como vc está tentando salvar a boleta?

[]'s

Rodrigo Auler
22/10/2009 00:00


0
Deu certo...
Me despercebi que tinha uma trigger que disparava no insert para pegar o id...
23/10/2009 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto