Fórum Como tratar pessoa fisíca e juridica + cliente que pode ser os dois? #414423

22/03/2012

0

Boa tarde,

Relaciomaneto (Pessoa fisica e juridica) até ai tudo bem, o problema está
em ligar o cliente(Porque ele pode ser os dois)


até o momento estou fazendo desse jeito


public abstract class Pessoa {
.......
}

public class Fisica extends Pessoa {
........
}

public class Juridica extends Pessoa {
........
}


A duvida vem agora e cliente que pode ser os dois?
eu vi em outros forum que o melhor é usar composição?Seria essa a maneira de resolver esse problema?


Fico no aguardo de uma ajuda


Thiago Volpato

Thiago Volpato

Responder

Posts

22/03/2012

Robson Teixeira

Iae tiago blz
so pergunta quais são os requisitos de sua app para que você diferencie pessoa fisica de pessoa juridica pois pelo que sei a mesma pessoa pode ter um cpf e um cnpj o que respectivamente destaca pessoa fisica e juridica.

att
robson
Responder

Gostei + 0

22/03/2012

Thiago Volpato

Robson,

Eu preciso diferenciar por que na minha aplicação o cliente pode ser tanto pessoa física como jurídica
e eu andei vendo nos fóruns esse assunto gera muita polémica mas ninguém fala ou da uma opinião clara
de como pode ser feito

Nesse caso como devo usar obter a pessoa física e jurídica para minha classe cliente que pode ser tanto um como outro?

Att
Responder

Gostei + 0

23/03/2012

Davi Costa

Na entidade cliente vc mantém uma pessoa (que pode ser física ou jurídica) - composição mesmo é a melhor saída.

Att Davi
Responder

Gostei + 0

14/04/2012

Dyego Carmo

Deu certo ?

Valeu !
Responder

Gostei + 0

15/04/2012

Thiago Volpato

Problema resolvido

Usei Herança com a estratégia JOINED

Valeu
Responder

Gostei + 0

16/05/2012

Thiago Volpato

Boa tarde,

Eu estou usando Herança JOINED e não tinha pensando em cliente(podendo ser Fisico ou juridico)
agora bateu a duvida...

Tem como eu fazer isso sem perder minha herança?

e se for usar composição como poderia nesse caso.


Herança:

classe Pessoa
classe Fisico extends Pessoa
Classe Juridica extends Pessoa


e a classe Cliente como ficaria podendo ser os dois?

Fico no aguardo



Responder

Gostei + 0

16/05/2012

Robson Teixeira

Na sua classe que vai representar a venda basta você criar o seguinte atributo onde esse atributo pode ser tanto Pessoa Fisica quanto Juridica.

public class Venda{
private Pessoa cliente;
// get,set e os demais atributos omitidos.
}

espero ter ajudado
att
robson
Responder

Gostei + 0

16/05/2012

Thiago Volpato

Robson,

então o problema está na classe Cliente ainda

como que eu vou tratar ela do jeito que está a minha aplicação hoje.

Lembrando:
Tenho uma herança onde tenho Pessoa e estendo ela para as classes Fisico e Juridica.

e minha aplicação precisa ter esse nível de abstracao.

Qual é a melhor maneira de eu implementar meu Classe cliente nela?




Responder

Gostei + 0

17/05/2012

Davi Costa

Como já citei vc pode usar composição, dentro de Cliente vc teria um atributo pessoa, que dependendo do que o usuário interagisse na aplicação poderia ser pessoa física ou jurídica (pois os dois estendem de pessoa).

att Davi
Responder

Gostei + 0

17/05/2012

Thiago Volpato

Deixaria dessa maneira certo


public class Client implements Serializable{

	private static final long serialVersionUID = 1L;
	
	@Id
	private Long id;
        
          
	private Pessoa pessoa;


como eu faria a escolha? Pessoa Física ou Jurídica?
e teria mapeamento OneToOne?

Responder

Gostei + 0

17/05/2012

Thiago Volpato

A classe Pessoa não pode conhecer Cliente certo?

tem como você me passa um exemplo simples
de como eu teria os atributos da classe
Pessoa Física e Jurídica para o cadastro do cliente
Responder

Gostei + 0

17/05/2012

Davi Costa

Além dos atributos de pessoa, para facilitar vc teria que ter alguma coluna que defina se é pessoa fisica ou juridica.
em pessoa física e/ou juridica, na teria que ter o id da tabela pessoa. Então pronto, ao pegar o id de pessoa vc vai nas tabelas filhas e vai saber se é um ou outro. Porém com essa coluna auxiliar vc diminuiria esse join, pois vc já olharia logo p ela p saber se é umou outro

att Davi
Responder

Gostei + 0

17/05/2012

Thiago Volpato

Davi,

o problema está ai, por que eu vou herdar apenas os atributos da classe Pessoa

mas como estou usando herança eu dividi os atributos correspondente as classe Fisica e Juridica

e inserindo apenas a classe Pessoa como atributo eu não tenho acesso aos atributos das demais
e outra coisa a classe pessoaFisica e jurídica são superClass

entendeu a dificuldade
Responder

Gostei + 0

17/05/2012

Davi Costa

Já pensou em usar os atributos transients em Cliente que contemplem os atributos de fisica e juridica?

att Davi
Responder

Gostei + 0

17/05/2012

Thiago Volpato

transient não é persistido certo
não vejo o pq usar isso
tem exemplo para me mostrar
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar