java - Jpa 存储库未从数据库中删除
问题描述
所以,我有这个实体
@Entity
@Table(name = "VISITOR_IMAGE")
public class VisitorImage implements Serializable {
@Id
@Column(name = "VISITOR_ID")
private Long visitorId;
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
@PrimaryKeyJoinColumn(name = "VISITOR_ID", referencedColumnName = "ID")
private Visitor visitor;
@Column(name = "NAME")
private String name;
@Column(name = "DATA")
private byte[] data;
@Column(name = "CONTENT_TYPE")
private String contentType;
@Column(name = "SIZE")
private Long size;
//getters and setters
}
在这里我有 jpa 存储库:
@Repository
public interface VisitorImageRepository extends JpaRepository<VisitorImage, Long> {}
所以当我在服务中调用删除时,没有错误或任何东西,但它没有被删除
@Override
public void deleteByVisitorId(Long visitorId) {
visitorImageRepository.delete(visitorId);
}
我不知道为什么它没有被删除......表的主键是“VISITOR_ID”
我要补充一点,保存效果很好。
有什么帮助吗?
解决方案
您已将 vistor 映射为一对一,并将级联选项映射为持久,即“cascade=CascadeType.PERSIST”它阻止您删除。要删除,您需要将级联选项设置为 Cascade.All 或 Cascade.Remove
推荐阅读
- networking - 在wireshark中以oracle TNS协议传输的数据
- python-2.7 - 如何每天运行我的 python 应用程序三次
- php - 如何将 wordpress 分类图像显示到前端?
- node.js - 如何将 heroku 连接映射从 staging 迁移到 prod
- javascript - 如何获取数组成员并将它们一一放入 HTML div 中?
- apache-camel - 在消息重新传递期间保留 JMS 消息头
- r - 使用 R 对每个客户和产品组合进行回归
- javascript - 是否可以在“开发者工具”网络选项卡中检查“GM_xmlhttpRequest”?
- statistics - 回归中自解释变量之间的相关性
- c++ - 将数组存储到动态内存中