Ola
Estou com uma dúvida sobre objeto de tipo entidade e tipo de valor…
objeto de tipo entidade seria aquele que possui uma tabela no bd? por ex: Tabela Usuario
e objeto tipo de valor seria apenas um “campo” da tabela Usuario? Porém eu trabalhe com um objeto para esse campo ? por ex: Endereço
Estou certo?
abraco
Exemplo:
Cliente TEM UM endereço.
Dependendo da tua aplicação você define se objeto endereço vai ter um ciclo de vida dependente ou não de Cliente.
-Caso endereço exista independentemente de Cliente, ele é uma Entidade
-Caso endereço seja dependente de Cliente(só tenho acesso a um endereço através de um Cliente), ele pode ser mapeado como um tipo de valor.
Diferença conceitual:
-> Um objeto tipo de valor não tem identidade no banco de dados, ele pertence a uma instância de entidade. Um objeto tipo de valor no seu estado persistente é colocado na mesma linha da tabela da entidade dona.
-> Um objeto entidade tem sua própria identidade no banco de dados (chave primária), isso quer dizer que ela tem seu próprio ciclo de vida(ela existe independentemente de qualquer outra entidade).
a parte de objeto tipo entidade ficou claro… mas tipo de valor ainda não…
por ex:
tabela cliente
tabela endereco
- id (pk)
- idCliente (fk)
- rua
nesse exemplo a tabela endereco depende da tab cliente…para cada endereco tem um cliente, mas para cada cliente pode ter
vários enderecos…
nesse caso o Objeto Endereco seria um tipo de valor, certo?
essa frase “só tenho acesso a um endereço através de um Cliente” quer dizer que não tem como eu “descobrir”, ou consultar o
cliente atravez do endereco? pode me explicar melhor?
valeu
errado.
Você ta fazendo um pouco de confusão, nesse caso você esta criando um relacionamento entre duas entidades “One-To-Many” onde tanto o objeto Cliente quanto Endereco são entidades.
-Endereço seria um tipo de valor se ele fosse persistido junto a tabela de Clientes.
Isso quer dizer que Cliente e Endereço ficarão em uma mesma tabela.
-Endereço não teria uma chave primaria.
Cliente é a entidade responsável (aquela que contém uma chave primaria no banco de dados) enquanto endereço somente existe porque um Cliente tem aquele endereço.
a tabela ficaria assim:
Tabela cliente
- id(pk)
- nome
-rua
-numero
-bairro
-cidade
blz Rodrigo…
agora ficou bem claro…
valeu