Ir para conteúdo


Foto

Model com relacionamento OneToOne

Model Relationship Relacionamento OneToOne UmParaUm

  • Por favor, faça o login para responder
2 respostas neste tópico

#1 DaniloTerra

DaniloTerra

    Novato

  • Membros
  • PipPip
  • 15 posts

Postado 02 March 2015 - 15:52

Boa tarde senhoras/senhores, tudo bem com vocês? Espero que sim!

 

Gostaria muito da ajuda de vocês.

 

Estou com uma dúvida quanto à correta configuração de Models com relacionamentos OneToOne. Meu backend retorna o seguinte arquivo JSON:

{
"id": 1,
"fisicaJuridica": "Física",
"dataCadastro": "2015-03-02T00:00:00",
"nomeRazaoSocial": "Teste",
"apelidoFantasia": "Teste",
"dataNascimentoAbertura": "1993-03-09T00:00:00",
"clienteFinanceiro": {
  "clienteId": 1,
  "limiteCreditoCheque": 1200.0
}
}

O objeto ClienteFinanceiro tem um relacionamento OneToOne com o objeto Cliente. Fiz dessa maneira para melhorar a organização dos dados, conceitualmente falando.

 

Meus Models estão da seguinte maneira:

Ext.define('CoffeeERP.model.Cliente', {
	extend: 'Ext.data.Model',
	fields: [{
		name: 'id',
		type: 'int'
	}, {
		name: 'fisicaJuridica',
		reference: 'FisicaJuridica',
		type: 'string'
	}, {
		name: 'nomeRazaoSocial'
	}, {
		name: 'apelidoFantasia'
	}, {
		name: 'dataCadastro',
		type: 'date',
		dateFormat: 'd/m/Y',
		dateReadFormat: 'c',
		dateWriteFormat: 'c'
	}, {		
		name: 'dataNascimentoAbertura',
		type: 'date',
		dateFormat: 'd/m/Y',
		dateReadFormat: 'c',
		dateWriteFormat: 'c'
	}, {
		name: 'clienteFinanceiro',
		reference: 'CoffeeERP.model.ClienteFinanceiro'
	}]
});
Ext.define('CoffeeERP.model.ClienteFinanceiro', {
	extend: 'Ext.data.Model',

	fields: [{
		name: 'clienteId',
		type: 'int'
	}, {
		name: 'limiteCreditoCheque',
		type: 'number'
	}]
});

Minha requisição POST, enviada ao backend, está da seguinte maneira:

{
"id":"CoffeeERP.model.Cliente-1",
"fisicaJuridica":"Física",
"dataCadastro":"2015-03-02T00:00:00-03:00",
"dataNascimentoAbertura":"2015-03-02T00:00:00-03:00",
"nomeRazaoSocial":"Teste",
"apelidoFantasia":"Teste",
"limiteCreditoCheque":2500,
"undefined":0
}

Acredito que deveria ser da seguinte maneira:

{
"id":"CoffeeERP.model.Cliente-1",
"fisicaJuridica":"Física",
"dataCadastro":"2015-03-02T00:00:00-03:00",
"dataNascimentoAbertura":"2015-03-02T00:00:00-03:00",
"nomeRazaoSocial":"Teste",
"apelidoFantasia":"Teste",
"clienteFinanceiro":{
   "clienteId":0,
   "limiteCreditoCheque":2000.0
},
"undefined":0
}

Como devo configurar meus Models para que isso aconteça?

 

Desde já, muitíssimo obrigado!



#2 Loiane

Loiane

    Member Avançado

  • Expert User
  • 1013 posts
  • LocationSão Paulo - SP

Postado 16 March 2015 - 08:46

Infelizmente ainda não implementaram o write das associations no Ext JS.  :-[

 

Ou vc faz um override do Writer (algo assim http://www.loiane.co...many-e-hasone/)ou vc usa Session, pega o objeto e salva na mão!


Autora dos livros:

Mastering Ext JS 5 http://bit.ly/1HWeHXh
Mastering Ext JS 4 http://bit.ly/14NZkxg

Ext JS 4: First Look http://bit.ly/o1IP1w
Sencha Architect http://bit.ly/19FVBGs
Curso ExtJS 4 Gratuito http://bit.ly/s5S0Oj (conceitos valem pro Ext 5 e 6 tb)


#3 DaniloTerra

DaniloTerra

    Novato

  • Membros
  • PipPip
  • 15 posts

Postado 16 March 2015 - 11:45

@Loiane, muito obrigado pela informação!

 

Realmente, o ExtJS não tem suporte para esse tipo de operação. Fiz uma modificação no meu back-end, fiquei triste em fazé-la. Agora os relacionamentos OneToOne não existem mais na minha aplicação, coloquei tudo numa tabela só. Acredito que com os relacionamentos OneToOne minhas informações ficavam "conceitualmente mais organizadas". Enfim, agora está funcionando.






0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 membros anônimos