JPA/Hipernate Probleme mit Relation

bnr

Mitglied
Hallo,

ich finde einfach keine Lösung, wie ich die Annotations richtig setzen muss. Ich möchte ein Cascade on delete realisieren (cascade={CascadeType.ALL}, orphanRemoval=true). Wenn ein Projekt gelöscht wird, so soll das Projekt und dessen Kommentare, die Konfigurationen des Projekts und dessen Kommentare und Version gelöscht werden. Also alles was am Projekt dranhängt.
Bidirektional Relationen habe ich nicht vorgesehen.

Hat wer eine Idee wie ich dies richtig Umsetze? Es gab immer Probleme, wenn ich z.B. bei der Comment und Cfg in Project.java cascade eingesetzt habe.

Relationen:
Project 1:N Comment
Project 1:N Cfg
Cfg 1:N Comment
Cfg 1:1 ZNr

Technology:
SmartGWT EE
Hipernate HSQLDialect

Klassen ohne cascade
Code:
@Entity
@Table (name="Project")
public class Project  implements Serializable{

    @Id
    @Column (nullable = false)
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    private Long nodeId;
    
    @OneToMany  
    @JoinColumn(name="projectCommentId", referencedColumnName="nodeId")   
    private List<Comment> comment;  
    
    @OneToMany
    @JoinColumn(name="nodeCfgId", referencedColumnName="nodeId")  
    private List<Cfg> cfg;  

...}

Code:
@Entity
@Table (name="Cfg")
public class Cfg  implements Serializable{

    @Id
    @Column (name="cfgId")
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    private Long cfgId;
 
    @Column
    private ZNr nummer;
    
    @OneToMany
    @JoinColumn(name="cfgCommentId", referencedColumnName="cfgId")   
    private List<Comment> comment;
...
}

Code:
@Entity
@Table (name="Comment")
public class Comment  implements Serializable{

    @Id
    @Column 
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    private Long commentId;

 ...
}

Code:
@Entity
@Table (name="Znr")
public class Znr  implements Serializable{
...
}
 
Zurück