spring-boot中的manytone realtionship

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

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

  1. @Getter
  2. @Setter
  3. @EqualsAndHashCode
  4. @NoArgsConstructor
  5. @Entity
  6. @Table(name = "tblFeeding")
  7. public class Feeding {
  8. @Id
  9. @GeneratedValue(strategy = GenerationType.AUTO)
  10. private Integer idFeeding;
  11. private LocalDateTime dateFeeding;
  12. private double amountFeeding;
  13. private String foodFeeding;
  14. @ManyToOne
  15. @JoinColumn(name = "id_user")
  16. private User user;
  17. }

这是我的 User.java 班级:

  1. @Entity
  2. @Getter
  3. @Setter
  4. @Table(name = "tbl_User")
  5. public class User implements UserDetails {
  6. @Id
  7. @GeneratedValue(strategy = GenerationType.AUTO)
  8. private Integer idUser;
  9. private String nameUser;
  10. private String email;
  11. private String passwordUser;

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

zsbz8rwp

zsbz8rwp1#

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

  1. ALTER TABLE Feeding
  2. ADD CONSTRAINT id_user_fk
  3. FOREIGN KEY (id_user) REFERENCES User;

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

相关问题