Bonjour à tous,
Soit la classe abstraite (cf le code à la fin) Test0
Soit les classe Test1 et Test2 deux classes étendant la classe Test0
Les classe Test1 et Test2 sont mappées de façon à pointer sur respectivement, les tables Table1 et Table2
question :Est il possible de faire récuperer tous les enregistrments des tables Tes1 et Test2 en une seule requette grace à la classe Test0 ?
D'apres ce que j'ai lu, il semblerait que cela soit tout à fait possible, malheureusement j'ai du rater une étape car j'ai l'exception suivante :
org.hibernate.hql.ast.QuerySyntaxException: Test0 is not mapped [from Test0 test0 where test0.name=:nameEtude]
vous trouverez les trois classes ci dessous , ainsi que la methode ou j'execute ma requette sur la base de données.
si quelqu'un avait une réponse ou même une piste ...
Par avance merci
Bonne journée
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
@MappedSuperclass
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Test0 extends PersistantModelReplicable {
static Logger log = Logger.getLogger(Test0.class);
String name;
@Column(name = "NAME")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
====================================================
@Entity
@Table(name = "Table1")
public class Test1 extends Test0 {
static Logger log = Logger.getLogger(Test1.class);
public Test1(){
}
}
================================================
@Entity
@Table(name = "Table2")
public class Test2 extends Test0 {
static Logger log = Logger.getLogger(Test2.class);
public Test2(){
}
}
=============================================
Test0 test0 = (Test0) getSession().createQuery("from Test0 test0 where test0.name=:nameEtude").setString("nameEtude","NomEtude").uniqueResult(); |
Partager