Comment travailler avec les interfaces et l'APP
Je dois commencer par dire que je suis assez nouveau à Java EE et que je n'ai pas de solides connaissances théoriques de base en Java encore.
Je vais avoir du mal à saisir comment utiliser JPA
avec interfaces
en Java. Pour illustrer ce que je trouve dur, j'ai créé un exemple très simple.
Si j'ai deux interfaces simples Person
et Pet
:
public interface Person
{
public Pet getPet();
public void setPet(Pet pet);
}
public interface Pet
{
public String getName();
}
Et une Entité PersonEntity
qui implémente Person
ainsi que d'un PetEntity
qui implémente Pet
:
@Entity
public class PersonEntity implements Person
{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private PetEntity pet;
@Override
public void setPet(Pet pet)
{
/* How do i solve this? */
}
}
@Entity
public class PetEntity implements Pet
{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String name;
/* Getters and Setters omitted */
}
Comment puis-je traiter correctement le cas dans le setPet
méthode dans laquelle je veux conserver les relations entre les deux entités ci-dessus?
La principale raison pour laquelle je tiens à utiliser des interfaces est parce que je veux garder les dépendances entre modules/couches pour les interfaces publiques. Sinon, comment puis-je éviter une dépendance, par exemple mon ManagedBean directement à une Entité?
Si quelqu'un déconseille d'utiliser des interfaces sur les entités, alors s'il vous plaît expliquer ce que d'autres méthodes ou des motifs y sont.
source d'informationauteur Niklas Norin | 2012-01-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
targetEntity
propriété dans la relation d'annotation.