代码之家  ›  专栏  ›  技术社区  ›  letthefireflieslive

更新父实体插入新条目

  •  1
  • letthefireflieslive  · 技术社区  · 7 年前

    我有一个 EndangeredFish 扩展的实体 Fish

    濒危鱼类 numberOfSpeciesLeft

    Fish fish = fishRepository.findOne(fishId);
    EndangeredFish endangeredFish = fishToEndangeredFish.apply(fish);
    
    endangeredFish.setNumberOfSpeciesLeft(500);
    endangeredFish.setId(fishId);
    
    Fish updatedFish = fishRepository.save(endangeredFish);
    

    这将在 ENDANGERED_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;
    }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Jens Schauder    7 年前

    我想知道我的案例是否适合实体继承,或者我应该只使用一个FISH表 null numbOfSpeciesLeft字段位于开始位置,稍后更新。

    不,这不适合继承。如果您有一个实例在其生命周期中基本上应该更改其类型,那么您使用的继承是错误的。

    A. 无效的 numbOfSpeciesLeft 听起来是个合理的开始。它可能会演变为对 EndangermentInformation