Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/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
Hibernate 更新父实体插入新条目_Hibernate_Jpa_Inheritance_Hibernate Mapping - Fatal编程技术网

Hibernate 更新父实体插入新条目

Hibernate 更新父实体插入新条目,hibernate,jpa,inheritance,hibernate-mapping,Hibernate,Jpa,Inheritance,Hibernate Mapping,我有一个濒危鱼类实体,它扩展了具有联合继承类型的鱼类实体 一段时间后,我们想将鱼更新为濒危鱼(带有物种数左侧字段) 这会在濒危鱼类表中插入一个新条目(如预期的那样),但也会在鱼类表中插入一个新条目,我不希望这样做 我想知道我的案例是否适合实体继承,或者我应该只使用一个FISH表,在开始时带有nullnumbOfSpeciesLeft字段,然后更新它 @Entity @Inheritance(strategy=InheritanceType.JOINED) public class Fish {

我有一个
濒危鱼类
实体,它扩展了具有联合继承类型的
鱼类
实体

一段时间后,我们想将
更新为
濒危鱼
(带有
物种数左侧
字段)

这会在
濒危鱼类
表中插入一个新条目(如预期的那样),但也会在
鱼类
表中插入一个新条目,我不希望这样做

我想知道我的案例是否适合实体继承,或者我应该只使用一个
FISH
表,在开始时带有
null
numbOfSpeciesLeft
字段,然后更新它

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public class Fish {
    @Id
    @GeneratedValue
    private Long id;

    private String name;

    private Integer numOfFins;

    private String color;

    @ManyToOne
    @JoinColumn
    private Environment environment;

    @OneToMany
    @JoinColumn
    private String parts

}


@Entity
public class EndangeredFish extends Fish {
    Integer numOfFishLeft;
}
我想知道我的案例是否适合实体继承,或者我应该只使用一个FISH表,在开始时带有
null
numbOfSpeciesLeft字段,然后更新它

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public class Fish {
    @Id
    @GeneratedValue
    private Long id;

    private String name;

    private Integer numOfFins;

    private String color;

    @ManyToOne
    @JoinColumn
    private Environment environment;

    @OneToMany
    @JoinColumn
    private String parts

}


@Entity
public class EndangeredFish extends Fish {
    Integer numOfFishLeft;
}
不,这不适合继承。如果您有一个实例在其生命周期中基本上应该更改其类型,那么您使用的继承是错误的

numbOfSpeciesLeft
null
值听起来是一个合理的开始。如果您有更多信息需要跟踪,它可能会演变为对
濒危信息的可选引用。可以映射为一对一关系或可嵌入关系

我想知道我的案例是否适合实体继承,或者我应该只使用一个FISH表,在开始时带有
null
numbOfSpeciesLeft字段,然后更新它

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public class Fish {
    @Id
    @GeneratedValue
    private Long id;

    private String name;

    private Integer numOfFins;

    private String color;

    @ManyToOne
    @JoinColumn
    private Environment environment;

    @OneToMany
    @JoinColumn
    private String parts

}


@Entity
public class EndangeredFish extends Fish {
    Integer numOfFishLeft;
}
不,这不适合继承。如果您有一个实例在其生命周期中基本上应该更改其类型,那么您使用的继承是错误的


numbOfSpeciesLeft
null
值听起来是一个合理的开始。如果您有更多信息需要跟踪,它可能会演变为对
濒危信息的可选引用。可以映射为一对一关系或可嵌入关系。

您可以共享实体类吗?您可以共享实体类吗?