Hibernate version:
3.0.2-GA (same for annotations)
I decided to remap my java classes using Annotations.
I have one simple query that used to work but it doesn't anymore.
Where am i missing something?
This is the cenario:
One class and a Child = Simple Inheritance.
Java Classes: (simplified)
@Entity
@Table(name="ACTIVITIES)
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn( name="AUTOM", discriminatorType=DiscriminatorType.INTEGER)
@DiscriminatorValue("0")
@SequenceGenerator(name="activitySequence", sequenceName="ACTIVITIES_S1", allocationSize=1)
public class Activity {
private Long id;
private String description;
private Flow flow;
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="activitySequence")
public Long getId(){
return this.id;
}
public void setId(Long id ){
this.id = id;
}
@ManyToOne(cascade=CascadeType.PERSIST)
@JoinColumn(name="FLOW_OID_FK")
public Flow getFluxo() {
return flow;
}
public void setFlow(Flow flow) {
this.flow = flow;
}
}
@Entity
@DiscriminatorValue("1")
public class AutomaticActivity extends Activity {
private String clazz = null;
@Column(name="CLASS")
public String getClazz() {
return classe;
}
public void setClazz(String clazz) {
this.clazz = clazz;
}
}
Query that used to work:
Count how many NonAutomatic activities i have for a desired flow:
-----------------------------------------
select size(a) from Flow f join f.activities a where a.class != AutomaticActivity and f.id = :id
-----------------------------------------
Now it only works if i explicitly set the discriminator value:
-----------------------------------------
select size(a) from Flow f join f.activities a where a.class != 1 and f.id = :id
-----------------------------------------
Note that the only the java classes have changed.
Cheers,
:Luiz.Decaro.
|