Salut à tous,

Voici pour tous les GEEKs Hibernate, j'ai problème d'héritage avec principalement le stratégie: "InheritanceType.JOINED". Ci-joint les mes différentes classes.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
@Entity
@javax.persistence.Table(name= "EMP", schema= "edu")
 
@Inheritance(strategy= InheritanceType.JOINED)
@DiscriminatorColumn(name= "EMP_TYPE", discriminatorType= DiscriminatorType.STRING)
public abstract class Employee {
 
	@Column(name = "NAME_") private String name;
 
	@Column(name = "S_DATE") @Temporal(TemporalType.DATE) private Date startDate;
 
	@Id private long id= System.currentTimeMillis();
 
	public long getId() {
		return id;
	}
 
	public void setId(long id) {
		this.id = id;
	}
 
	public String getName() {
		return name;
	}
 
	public void setName(String name) {
		this.name = name;
	}
 
	public Date getStartDate() {
		return startDate;
	}
 
	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}
 
	public String toString() {
		return "Employee id: " + getId() + " name: " + getName();
	}
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
@Entity
@javax.persistence.Table(name= "PT_EMP", schema= "edu")
@DiscriminatorValue("3")
public class PartTimeEmployee extends Employee {
 
	@Column(name = "H_RATE")
	private float hourlyRate;
 
	public float getHourlyRate() {
		return hourlyRate;
	}
 
	public void setHourlyRate(float hourlyRate) {
		this.hourlyRate = hourlyRate;
	}
 
	public String toString() {
		return "PartTimeEmployee id: " + getId() + " name: " + getName();
	}
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
@Entity
@javax.persistence.Table(name= "FT_EMP", schema= "edu")
@DiscriminatorValue("2")
public class FullTimeEmployee extends Employee {
	private long salary;
	private long pension;
 
	public long getPension() {
		return pension;
	}
 
	public void setPension(long pension) {
		this.pension = pension;
	}
 
	public long getSalary() {
		return salary;
	}
 
	public void setSalary(long salary) {
		this.salary = salary;
	}
 
	public String toString() {
		return "FullTimeEmployee id: " + getId() + " name: " + getName();
	}
}
Comme vous pouvez le constater, il s'agit d'un héritage assez simple. Mais mon problème est le suivant. Dès que passe ma stratégie d'héritage à "InheritanceType.JOINED", la colonne "EMP_TYPE" n'est pas générée. Mais si j'utilise les deux autres stratégies, tout se passe nikel.

Quelqu'un aurait-il une idée?
Voici ma config. technique.
Hibernate3 --> 3.6.4
Base postgres --> 9.0
name : PostgreSQL
version : 9.0.1
major : 9
minor : 0
Driver ->
name : PostgreSQL Native Driver
version : PostgreSQL 8.4 JDBC3 (build 702)
major : 8
minor : 4

Jar -> postgresql-8.4-702.jdbc3.jar

Bon voilà tout. Je suis preneur de tout proposition.