hibernate级联,删除一方不删除多方,只是把多方的外键置空,请问怎样设置

hibernate级联,删除一方不删除多方,只是把多方的外键置空,请问怎样设置,第1张

如果是用实体类标签@OneToMany的方式,可以设置里面的orphanRemoval=true,则主类删除时子类也会删除。

如果是manyToOne,应该根本不会有这种级联删除需求吧。

顺便,我的经验来看是外键这种关联关系只能在java层面来设置,绝不能在数据库层面来做外键啊非空啊之类的限制。这主要是考虑各自的责任范围,数据库就应该只负责数据本身,数据的逻辑应该在代码层面做

在数据库中,参照完整性违约处理中有拒绝处理、级联修改、设为空值三种方法,那设置空值是如何定义的:

这个是要自己定义的,自己写很麻烦,

下面是我用SQL SERVER逆向生成的代码,你可以看一下.

USE [stu]

GO

/****** 对象:  Table [dbo].[student]    脚本日期: 03/10/2011 14:52:53 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[student](

[id] [int] NOT NULL,

[did] [int] NULL,

CONSTRAINT [PK_student] PRIMARY KEY CLUSTERED

(

[id] ASC

)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

GO

ALTER TABLE [dbo].[student]  WITH CHECK ADD  CONSTRAINT [FK_student_dd] FOREIGN KEY([did])

REFERENCES [dbo].[dd] ([Did])

ON UPDATE SET NULL

ON DELETE SET NULL

GO

ALTER TABLE [dbo].[student] CHECK CONSTRAINT [FK_student_dd]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6786298.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存