spring-boot中的manytone realtionship

ruarlubt  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(421)

嗯,我有课 Feeding.java 还有一节课 User.java 一次喂食应该有一个用户,但是一个用户可以有很多次喂食。
这是我的 Feeding.java 班级:

@Getter
@Setter
@EqualsAndHashCode
@NoArgsConstructor
@Entity
@Table(name = "tblFeeding")
public class Feeding {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer idFeeding;
    private LocalDateTime dateFeeding;
    private double amountFeeding;
    private String foodFeeding;
    @ManyToOne
    @JoinColumn(name = "id_user")
    private User user;
}

这是我的 User.java 班级:

@Entity
@Getter
@Setter
@Table(name = "tbl_User")
public class User implements UserDetails {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer idUser;
    private String nameUser;
    private String email;
    private String passwordUser;

目前的问题是,我可以用一个不存在的userid保存feeding对象,这应该是不可能的。

zsbz8rwp

zsbz8rwp1#

缺少外部约束。如果您使用hibernate orm创建了表,则不应该这样做,但是如果您以不同的方式创建了表,则可能没有创建外部约束。
您需要运行类似于以下内容的sql查询:

ALTER TABLE Feeding
ADD CONSTRAINT id_user_fk
FOREIGN KEY (id_user) REFERENCES User;

请注意,查询可能不同,您需要检查数据库的确切查询。
此查询来自hibernate orm文档示例,用于多对一关联。

相关问题