OO e JPA : Dúvida

Olá a todos!

Seguinte, tem-se a classe Product que pertence a uma Category. Isto significa que há uma associação entre elas.
(Estas classes se referem à aplicação de referência PetStore).

A maneira que eu penso ser adequada é esta:

[code]public class Product {

private Category category;

}[/code]

Mãs, lá na aplicação de referência está assim:

[code]public class Product {

private String categoryID;

}[/code]

POR QUE está assim? É melhor em termos de performance? É a boa prática? O que que é? Quais as diferenças? Não fere os princípios da OO?

Por favor, me ajudem. :?

Olá conrado,

Eu acho que o correto não é dizer: “tem-se a classe Product que pertence a uma Category”, pois ela não pertence.
Neste seu caso, a classe Product TEM uma Category. Isso é uma composição.

Quanto à sua dúvida da aplicação de referência:

public class Product {  
  
   private Category category;  
  
}

Com JPA, vc declara na classe uma referência para um objeto, e o JPA vai persistir o relacionamento no banco utilizando os id´s.
Eu não entendi exatamente oq vem a ser essa “aplicação de referência”. É o sistema que vc está trabalhando?

Olá leandro!

Obrigado pela resposta. A aplicação de referência é da Sun (http://java.sun.com/developer/releases/petstore/). No código-fonte desta aplicação, a classe Product tem um atributo String categoryID ao invés de um atributo do tipo Category (classe Category). Eu gostaria de saber por que foi utilizado um atributo String ao invés de um atributo Category. Essa é minha indagação.