【发布时间】:2012-02-16 09:34:43
【问题描述】:
首先我应该说我对 Java EE 还很陌生,而且我还没有很强的 Java 理论背景。
我无法掌握如何在 Java 中同时使用 JPA 和 interfaces。为了说明我发现的困难,我创建了一个非常简单的示例。
如果我有两个简单的接口Person 和Pet:
public interface Person
{
public Pet getPet();
public void setPet(Pet pet);
}
public interface Pet
{
public String getName();
}
还有一个实现Person 的实体PersonEntity 以及一个实现Pet 的PetEntity:
@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 直接指向一个实体?
如果有人建议不要在实体上使用接口,请说明有哪些替代方法或模式。
【问题讨论】:
标签: java jakarta-ee jpa interface java-ee-6