| 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.
 
 
 |