标签: cascade

删除 ON DELETE CASCADE

我有一张儿童桌。在创建表时使用 ON DELETE CASCADE 和外键。

子表或父表中都没有记录。

我希望主键和外键保持原样,但只想从子表中删除 CASCADING 选项。

无论如何我可以改变那个子表。

谢谢你。

sql cascade constraints alter

8
推荐指数
2
解决办法
1万
查看次数

T-SQL:DROP表级联约束相当吗?

在oracle中,我可以发出DROP TABLE ...级联约束,它不会抱怨FK等.

在T-SQL中是否有等价物?

t-sql cascade

7
推荐指数
2
解决办法
7014
查看次数

Hibernate - 一对多关系和orphanRemoval级联

在Hibernate参考书的第21章中,我有一个基本的一对多关系父/子.
级联仅从子级到父级(持久化级联仅因为我不想删除父项,如果我删除子级).
当我向父母添加一个孩子并保存孩子时,我有一个TransientObjectException ...

@Entity
public class Parent implements Serializable {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;

  @OneToMany(mappedBy = "parent", orphanRemoval = true)
  private List<Child> childs;

  public List<Child> getChilds() {
    return childs;
  }

  public void setChilds(List<Child> childs) {
    this.childs = childs;
  }

  public void addChild(Child child) {
    if (childs == null) childs = new ArrayList<Child>();
    if (childs.add(child)) child.setParent(this);
  }

  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }
}

@Entity
public class …
Run Code Online (Sandbox Code Playgroud)

java hibernate cascade one-to-many orphan

7
推荐指数
1
解决办法
1万
查看次数

使用NHibernate StatelessSession级联集合

HasMany使用无状态会话批量插入包含其他实体集合(映射)的实体的正确方法是什么?

例如父类映射如下:

class ParentMap : ClassMap<Parent>
{
    public ParentMap()
    {
        Id(x => x.Id)
           .GeneratedBy.Increment();

        HasMany(x => x.ChildNodes)
           .KeyColumns.Add("Parent_id")
           .Cascade.All();
    }  
}
Run Code Online (Sandbox Code Playgroud)

无状态会话忽略级联选项,因此子节点不会自动保留.我可以自己遍历集合,但后来我无法设置关系,因为Parent_id列不存在作为我可以写入的属性.

我错过了什么吗?

c# nhibernate cascade fluent-nhibernate stateless-session

7
推荐指数
1
解决办法
1918
查看次数

使用共享主键关联时,首先在EF 4.1代码中删除级联删除规则

我基于这个答案实现了双向1:1关系:

实体框架中的主/外键

我这样定义双向关系:

public class Student
{   
    public virtual int StudentId { get; set; }
    public virtual Anamnesis Anamnesis { get; set; }

    . . .
}

public class Anamnesis
{
    [Key, ForeignKey("Student")]
    public int AnamnesisId { get; set; }

    public virtual Student Student { get; set; }

    . . .
}
Run Code Online (Sandbox Code Playgroud)

其中,学生是主要实体,Anamnesis是共享PK的实体.

现在我想创建的关系有一个Delete Rule = CASCADE.实际上,正在创建的关系具有Delete Rule = NO ACTION,如下图所示:

在此输入图像描述

如果我在"表格属性"窗口中手动删除此关系并使用"删除规则"="CASCADE"添加其他关系,则代码将按照我的预期允许我删除学生并且它具有相同ID的共享Anamnesis.

所以,这是我的问题:

有没有办法在我的类中使用Data Annotation(不是Fluent API),以便获得与CASCADE删除规则的关系?我更喜欢使用Data Annotation但是如果不可能的话,我会对使用它的一些Fluent API代码感到满意.

注意

我已经尝试了这篇文章中显示的Fluent API代码.它在我有双向属性的情况下不起作用.

cascade sql-server-ce cascading-deletes ef-code-first entity-framework-4.1

7
推荐指数
2
解决办法
1万
查看次数

NHibernate,"在删除级联",级联删除相关表中的行?

在过去的几周里,我一直在项目中使用NHibernate(使用Fluent-NHibernate映射),直到今天我遇到了一个问题(很可能是我自己的错误).

我做了一个小样本来说明我想要实现的目标:

public class Image
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual string Path { get; set; }
}

public class FeaturedImage
{
    public virtual int Id { get; set; }
    public virtual Image Image { get; set; }
    public virtual string Description { get; set; }
    public virtual DateTime Date { get; set; }
}

public class ImageMap : ClassMap<Image>
{
    public ImageMap()
    {
        Id(x => x.Id).GeneratedBy.Identity().UnsavedValue(0); …
Run Code Online (Sandbox Code Playgroud)

nhibernate cascade fluent-nhibernate cascading-deletes

7
推荐指数
1
解决办法
2641
查看次数

两个外键引用一个表 - ON UPDATE SET NULL不起作用

我在表中有两个外键.我们假设该表被调用News并具有外键,updatedById并且createdById两者都指向userId表中Users.

现在我想在NULL删除用户时设置外键,但是当我尝试设置ON DELETE SET NULL该关系时,我得到:

在表'新闻'上引入FOREIGN KEY约束'FK_News_Users'可能会导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束.

我不明白为什么两个外键都不能设置为null?

t-sql sql-server cascade constraints foreign-keys

7
推荐指数
1
解决办法
1万
查看次数

Hibernate:CascadeType.PERSIST不起作用,但CascadeType.ALL保存对象

@Entity
@Table(name = "Section_INST")
public class Section {

@javax.persistence.Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "Section_ID_GENERATOR")
@SequenceGenerator(name = "Section_ID_GENERATOR",sequenceName = "Section_ID_SEQUENCER" , initialValue = 1 , allocationSize = 1)
@Column(name = "Section_ID")
private int Id;

@Column(name = "Section_Name")
private String name;

@OneToOne(optional = false,cascade = CascadeType.PERSIST)
@JoinColumn(name = "Exch_ID")
private Exchange exchange;

//---Constructor and Getter Setters-----
}


@Entity
@Table(name = "EXCHANGE_INST")
public class Exchange {

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "Exchange_ID_GENERATOR")
@SequenceGenerator(name = "Exchange_ID_GENERATOR",sequenceName = "Exchange_ID_SEQUENCER" , initialValue = 1 , allocationSize …
Run Code Online (Sandbox Code Playgroud)

hibernate cascade

7
推荐指数
1
解决办法
6959
查看次数

最后一次返回会发生什么*这个c ++?

  Time &Time::setHour( int h ) 
  {
     hour = ( h >= 0 && h < 24 ) ? h : 0; 
     return *this; 
  } 


  Time &Time::setMinute( int m ) 
  {
     minute = ( m >= 0 && m < 60 ) ? m : 0; 
     return *this;  
  } 


  Time &Time::setSecond( int s ) 
  {
     second = ( s >= 0 && s < 60 ) ? s : 0; 
    return *this; 
   }

int main()
{
    Time t;     
    t.setHour( 18 ).setMinute( …
Run Code Online (Sandbox Code Playgroud)

c++ pointers cascade this

7
推荐指数
2
解决办法
222
查看次数

Java Spring级联元素集合删除

出于某种原因,当我尝试删除包含 elementcollection 的父元素时,我的删除不是级联的,这两个类如下:

@Entity
@Table(name="Timestamps")
@JsonIgnoreProperties(ignoreUnknown = true)
public class ProductList {
    private boolean success;
    @Id
    private Date lastUpdated;

    private String time = "minute";

    @ElementCollection
    @MapKeyColumn(name="product_id")
    @CollectionTable(name="Products")
    private Map<String,Product> products;
Run Code Online (Sandbox Code Playgroud)

和:

@Embeddable
@JsonIgnoreProperties(ignoreUnknown = true)
public class Product{
    @Embedded
    private Status quick_status;
Run Code Online (Sandbox Code Playgroud)

目前这是我在班级中唯一的字段,因为我已经删除了所有其他字段,试图找出为什么当我尝试删除父对象时删除不会级联到 Products 表。以下是我正在运行的查询:

DELETE FROM Timestamps list WHERE list.last_updated !=0;
Run Code Online (Sandbox Code Playgroud)

last_updated 值将始终为非零,因此我只是使用此查询来测试删除,但即使我在 mysql shell 中运行查询时,我也会收到“无法删除或更新父行:外键约束失败”我认为 elementcollection 注释应该自动级联,有什么我遗漏的吗?

编辑,当下面是 Hibernate 发送的 sql 命令时,你会注意到第三个它缺少级联。

Hibernate: create table products (product_list_last_updated datetime(6) not null, buy_price float not null, sell_price float not null, …
Run Code Online (Sandbox Code Playgroud)

mysql spring cascade cascading-deletes spring-boot

7
推荐指数
1
解决办法
1345
查看次数