Я должен начать с того, что я довольно новичок в Java EE и у меня пока нет сильных теоретических знаний в Java.
Мне сложно понять, как использовать JPA
вместе с interfaces
в Java. Чтобы проиллюстрировать то, что мне трудно, я создал очень простой пример.
Если у меня есть два простых интерфейса Person
и Pet
:
public interface Person
{
public Pet getPet();
public void setPet(Pet pet);
}
public interface Pet
{
public String getName();
}
И сущность PersonEntity
, которая реализует Person
, а также PetEntity
, которая реализует 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 */
}
Как правильно обработать регистр в методе setPet
, в котором я хочу сохранить отношения между двумя сущностями выше?
Основная причина, по которой я хочу использовать интерфейсы, заключается в том, что я хочу сохранить зависимости между модулями / слоями для открытых интерфейсов. Как еще мне избежать получения зависимости, например, от мой ManagedBean напрямую к сущности?
Если кто-то рекомендует не использовать интерфейсы на объектах, объясните, пожалуйста, какие существуют альтернативные методы или шаблоны.