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

Hibernate和spring数据存储库,保存或更新后对象不完整

  •  0
  • cape  · 技术社区  · 8 年前

    通过spring数据存储库(扩展CrudRepository)保存或更新此实体的对象后:

    @Entity
    @Table(name="finance_data")
    public class FinanceData implements Serializable {
    private static final long serialVersionUID = 1L;
    
    @Id
    @Column(unique=true, nullable=false)
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;
    
    @OneToOne(fetch=FetchType.EAGER)
    @JoinColumn(name="asset_type", nullable=false)
    private AssetType assetType;
    

    它只返回 Id 对于 assetType 所有物这迫使我们在更新后执行findOne以获取完整信息。

    如何让休眠返回整个对象?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Jens Schauder    8 年前

    它只返回 assetType 所有物

    这是因为所有其他字段都设置为 null 通过您自己的行动(如评论中所述):

    当我尝试保存新的FinanceData记录时,我只设置属性的引用id AssetType 因为它们存在于 FinanceData 已记录。

    而不仅仅是设置 Id 从而覆盖所有其他字段,加载 资产类型 通过 身份证件 然后使用它。