我有一个如下的方案:
@Entity
@Table(name = "ANIMAL")
@Inheritance(strategy = InheritanceType.JOINED)
public class Animal implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "S_ANIMAL")
@SequenceGenerator(name = "S_ANIMAL", sequenceName = "S_ANIMAL", allocationSize = 1)
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
.
.
.
}
并且作为子类:
@Entity
@Table(name = "DOG")
public class Dog extends Animal {
private static final long serialVersionUID = -7341592543130659641L;
.
.
.
}
我有一个类似于这样的JPA查询语句:
SELECT a FROM Animal a;
我正在使用Hibernate 3.3.1
我看到该框架使用左外连接检索 Animal
和 Dog
的实例。
有没有办法仅选择“部分” Animal
?我的意思是,先前的Select
将获取所有 Animal
,即仅为 Animal
而不是 Dog
的那些以及 Dog
。
我想要它们全部,但对于 Dog
,我只想检索它们的“Animal部分”。
我发现了@org.hibernate.annotations.Entity(polymorphism = PolymorphismType.EXPLICIT)
,但我发现这仅适用于Animal不是 @Entity
的情况。
非常感谢。