2013-06-22 9 views
0

Привет У меня есть ситуации, как это:JPA/спящий режим - Каскад удаления из БД

Entity TAG с 2 полями ManyToMany который держит 2 набора объектов (obj1, obj2). Когда я удаляю Obj1, я хочу удалить всю информацию, содержащуюся в Obj1, в объекте TAG. Можете ли вы рассказать мне, как это сделать?


@Entity(name = "tag") 
public class Tag { 

    ..... 

@ManyToMany(fetch = FetchType.LAZY) 
private Set<Checkpoint> checkpoints; 

    ...... 
} 

@Entity(name = "checkpoint") 
public class Checkpoint implements Serializable { 

      ...... 

} 

Там нет ссылки на теги в контрольной точке. И если я устанавливаю Cascade в ManyToMany, то, когда я удаляю тег, все пользователи с этим тегом удаляются. Я хочу, чтобы удалить строку в таблице tag_checkpoint, когда контрольная точка удалена. Должен ли я сделать это сам или есть хороший способ сделать это?

ответ

0

Я только что удалил объект из db.

0

Если ManyToMany выполняет удаление каскада, то установка cascade = CascadeType.ALL в вашей аннотации @ManyToMany должна работать. Если нет, то вы можете рассмотреть возможность разделения на многочисленные применения @OneToMany (если возможно) с помощью CascadeType.ALL.