我正在为我的Spring Boot 应用程序创建一个删除API端点。我尝试使用JpaRepository提供的delete()和deleteById()方法。但是,每当我尝试使用ConcertEntity或ConcertId删除Concert时,关联的地点条目就会从“地点”表中删除。如何防止使用JpaRepository删除引用实体/表?
我目前的解决方案是在删除Concert实体之前将地点设置为空。我的ConcertRepositroy扩展到JpaRepository。
服务实施中的当前解决方案
public void deleteConcert(ConcertEntity e){
e.setVenue(null);
this.concertRepository.delete(e);
}
Concert实体
@Entity
@Table(name = "CONCERTS")
public class ConcertEntity{
@Id
private UUID concertId;
@Column(name = "ARTIST")
String artist;
@Column(name = "VENUE_ID")
VenueEntity venue;
/*Getters && Setters here...*/
}
1条答案
按热度按时间jyztefdp1#
使用适当的注解定义关系(@ManyToOne或@OneToOne)
默认情况下,这不会触发任何级联删除,但如果要自定义行为,可以将级联参数添加到@ManyToOne或@OneToOne注解中。