通过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返回整个对象?
答案 0 :(得分:1)
它只返回
assetType
属性的Id。
这是因为所有其他字段都由您自己的操作设置为null
(如评论中所述):
当我尝试保存新的FinanceData记录时,我只设置属性
AssetType
的引用ID,因为它们在记录FinanceData
之前存在。
不是仅设置Id
从而覆盖所有其他字段,而是AssetType
加载Id
并使用它。