跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 数据库的表与表不建立外键,为什么 hibernate 还能够 进行多对一 一对多 查询?
未分類
3 9 月 2020

数据库的表与表不建立外键,为什么 hibernate 还能够 进行多对一 一对多 查询?

数据库的表与表不建立外键,为什么 hibernate 还能够 进行多对一 一对多 查询?

資深大佬 : kikione 3

公司的一个旧项目,数据库的表与表不建立外键,为什么 hibernate 还能够 进行多对一 一对多 查询?

另外,不建立外键 多对一会有什么影响吗?

mybatis 一定是需要建立外键吧? 我记得我不建立不会查询成功

大佬有話說 (14)

  • 資深大佬 : Jacky23333

    啊,这

  • 資深大佬 : dorothyREN

    这问题太难了,还是让下来解答吧

  • 資深大佬 : gz911122

    mybatis 不需要的

  • 資深大佬 : sleaves

    除了以前学校建过外键外,开发了这么久就没建过什么外键,都是代码约束

  • 資深大佬 : tctc4869

    外键并不一定是物理以上,数据库里的外键,外键也有可能靠实体类代码进行约束,比如通过注解。这种外键,在数据库那里当然看不出外键。

  • 資深大佬 : Jacky23333

    @tctc4869 你还是没看懂主的意思

  • 資深大佬 : Jacky23333

    @tctc4869 你的意思就是说,数据库表没有建立外键还能查询是因为代码里面有了逻辑外键,也就是你觉得,外键是多表查询实现的基础?

  • 資深大佬 : checkZH

    有一点可以明确,mybatis 是不需要的

  • 資深大佬 : liuzhaowei55

    外键是约束,而不是物理关联吧。
    我这样理解的

  • 資深大佬 : Jrue0011

    mybatis 的 association 和 collection 也不需要外键约束,一对一、一对多这些应该是实体关系而不是外键吧。

    注解指定了关联字段,orm 就能根据注解信息生成 SQL 用于查询,甚至新增和删除(作用就好像数据库的外键约束)。

  • 資深大佬 : hyperbin

    约束只管 insert,不管 select

  • 資深大佬 : qwerthhusn

    spring.jpa.hibernate.ddl-auto=validate
    再试试看
    默认的话是 none,这时 Hibernate 认为你的 Entity 定义和数据库定义都是 OK 的
    他只是生成这样的 SQL 去执行,但是此时有没有外键都能成功执行这个 SQL

  • 資深大佬 : zsdroid

    外键 ( foreign key ) 是用于建立和加强两个表数据之间的链接的一列或多列。
    我觉得关系表必定存在外键(数据库级别的实体外键,代码里的逻辑外键),也就是 jion on 部分。

  • 資深大佬 : zsdroid

    外键应该是广义上的关系键

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具