Bonjour à tous,
Je rencontre actuellement un petit soucis pour persister un objet contenant une liste d'objets abstraits.

Voici les classes concernées :
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
 
@Entity
@Table(name = "PROJECT")
public class ProjectDescriptor  implements Serializable
{
 
        @Column(name = "PROJECTID", nullable = false)
	@Id
	private String				projectId;
 
 
        @OneToMany(cascade = CascadeType.ALL,targetEntity = SerializableCommand.class)
	private List<SerializableCommand>	commands;
 
         ...
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name = "COMMAND")
public abstract class SerializableCommand implements Serializable 
{
 
	@Column(name = "COMMANDID", nullable = false)
	@Id
	@SequenceGenerator(name = "command_sequence")
	@GeneratedValue(generator = "command_sequence")
	@GwtTransient
	private Integer					id;
}
Et toutes les classes filles de SerializableCommand portent l'annotation @Entity.

Mais lors de la sauvegarde :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
public void save(ProjectDescriptor project)
	{
		em.merge(project);
	}
J'ai l'exception suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Cannot instantiate abstract class or interface: SerializableCommand
Qu'est-ce que j'ai loupé?!
Merci d'avance pour vos réponses