You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hibernate保存GeologicalClass对象时section_id字段为null的问题求助

Hibernate保存GeologicalClass对象时section_id字段为null的问题求助

嘿,各位大佬,我遇到个头疼的小问题,翻遍了手头能找的资料都没解决,来这儿求助了!

我现在要通过Post请求新建一个GeologicalClass对象(命名确实不太合理,但任务要求就是这样),可是保存到数据库的时候,关联的section_id字段总是被存成null。

下面是我的相关代码:

Section实体类

@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@Entity
@Table(name = "sections")
public class Section {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @Column(name = "name", nullable = false)
    private String name;

    private boolean isDeleted;

    @OneToMany(cascade = CascadeType.PERSIST, mappedBy = "section")
    private List<GeologicalClass> geologicalClasses;
}

GeologicalClass实体类

@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@Entity
@ToString(exclude = "section")
@Table(name = "geological_classes")
public class GeologicalClass {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(columnDefinition = "bigint")
    private Long id;

    private String name;

    private String code;

    private boolean isDeleted;

    @JsonBackReference
    @ManyToOne(fetch = FetchType.EAGER, optional = false)
    @JoinColumn(
        name = "section_id",
        insertable = false,
        nullable = false)
    private Section section;
}

Service层实现

@Service
public class GeologicalClassServiceImpl implements GeologicalClassService {

    @Override
    public GeologicalClass createGeologicalClass(GeologicalClass geologicalClass) {
        return geologicalClassRepository.save(geologicalClass);
    }
}

Controller层代码

@RestController
@RequestMapping("/api/geological-classes")
@RequiredArgsConstructor
public class GeologicalClassController {

    @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
    public RestResponse createGeologicalClass(@RequestBody GeologicalClass geologicalClass) {
        GeologicalClass createdGeologicalClass = geologicalClassService.createGeologicalClass(geologicalClass);
        return new RestResponse(createdGeologicalClass);
    }
}

麻烦各位帮忙看看问题出在哪儿,怎么才能让section_id正确写入数据库呢?

备注:内容来源于stack exchange,提问作者Roman Kalinin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 06:09:38