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

时间:2018-01-05 15:23:39

标签: java hibernate spring-data-jpa

通过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以获取完整信息。

如何告诉hibernate返回整个对象?

1 个答案:

答案 0 :(得分:1)

  

它只返回assetType属性的Id。

这是因为所有其他字段都由您自己的操作设置为null(如评论中所述):

  

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

不是仅设置Id从而覆盖所有其他字段,而是AssetType加载Id并使用它。