J'essaie actuellement de conserver une collection en utilisant @OneToMany (cascade = CascadeType.ALL) pour une liste simple d'objets. La table pour Parent_Child est créée dans MySQL mais les clés de chaque objet ne sont pas mises à jour lors de l'utilisation de SaveOrUpdate. Une idée de ce qu'est le problème? (Ma clé parent est définie et les enfants sont générés). J'ajoute les enfants à la collection de l'objet parent avant de persister avec saveOrUpdate. J'utilise MySQL avec Hibernate 3 et ma propriété auto est définie sur create-drop.Collection OneToMany annotée non persistante via Hibernate
La classe de test:
public class Tester {
public static void main(String[] args) {
VideoChannel testChannel = new VideoChannel("Test Channel");
VideoChannelMap v = new VideoChannelMap(testChannel, "Test Map");
VideoSource sc2Vid = new VideoSource("starcraft-ii-ghost-of-the-past.mp4", "EinghersStreamingBucket");
testChannel.add(sc2Vid);
Session s = HibernateSessionFactory.getSession();
s.beginTransaction();
s.saveOrUpdate(v);
s.close();
}
}
Les entités:
@Entity
public class VideoChannelMap {
@Id
String name;
@OneToMany(cascade=CascadeType.ALL)
List<VideoChannel> channelMap;
public VideoChannelMap(VideoChannel initialVid, String name)
{
this.name = name;
channelMap = new ArrayList<VideoChannel>();
channelMap.add(initialVid);
initialVid.setParent(this);
}
}
@Entity
public class VideoChannel {
@Id @GeneratedValue
Long id;
...
}
Le code actuel qui ne fonctionne pas serait extrêmement utile pour circonscrire les dizaines des causes potentielles. – Affe