Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Don';t级联删除到辅助表_Java_Hibernate_Jpa_Cascade - Fatal编程技术网

Java Don';t级联删除到辅助表

Java Don';t级联删除到辅助表,java,hibernate,jpa,cascade,Java,Hibernate,Jpa,Cascade,我将一个hibernate实体映射到一个表,比如ABC,在这里我声明了一个@SecondaryTable,比如XYZ @Entity @Table(name = "ABC") @SecondaryTables({ @SecondaryTable(name = "XYZ", pkJoinColumns = @PrimaryKeyJoinColumn(name = "xyz", referencedColumnName = "abc")) }) public class AbcClass {

我将一个hibernate实体映射到一个表,比如ABC,在这里我声明了一个
@SecondaryTable
,比如XYZ

@Entity
@Table(name = "ABC")
@SecondaryTables({ @SecondaryTable(name = "XYZ", pkJoinColumns = @PrimaryKeyJoinColumn(name = "xyz", referencedColumnName = "abc")) })
public class AbcClass {
    //...some atributes

    @Column(table = "XYZ", name = "xyz")
    private String abcDesc;

    //...getter setters
}
现在,如果我从表ABC中删除一行,我不希望它级联到XYZ。
我该怎么做?

Hi@bluefeet我已经更新了这个问题。更改地图并使用OneToOne。SecondaryTable表示单个实体映射到两个表。您必须创建独立的实体。您好@JB Nizet,我将映射更改为一对一,但在这之后,当我看到控制台时,有多个查询正在执行,即,如果子表的主表中的一个记录有10条记录,则执行10+1个查询。但当我使用SecondaryTable时,只执行一个查询,并获得所有结果。可能是,请解释一下这种行为。谢谢如果子表有10条单亲表记录,则关联是OneToMany,而不是OneToOne。这不是很明显吗?@JB Nizet,很抱歉,我在写这篇文章时混淆了一个完全不同的场景。实际上,映射是一对一的,当执行任何select语句时,首先select语句用于主表,然后select语句用于外键表中的所有记录。所以,若父表和子表有10条具有一对一映射的记录,则执行的语句总数为11条。