【问题标题】:How does Spring and Hibernate interpret @Entity and other annotationsSpring和Hibernate如何解释@Entity和其他注解
【发布时间】:2019-12-06 03:25:13
【问题描述】:

我对 Spring 和 Hibernate 如何通过注解配置进行交互感到困惑。

例如,如果我有 @Entity 或任何其他 '@___' 注释,Hibernate 如何知道与 Spring 或 Spring 和 Hibernate 之间共享的任何其他注释不同的解释。

据我了解,至少对于 @Entity 注释,Spring 会将其解释为 Java bean,而 Hibernate 将其理解为它将为数据库创建一个表。

如果是这样,@Id 会为 Spring 解释什么?我知道@Id 向 Hibernate 表明该变量应该是数据库的主键?

详细解释 Spring 的注解配置将有助于您解释这些注解的工作原理。

谢谢。

【问题讨论】:

  • 据我了解,至少对于@Entity 注解,Spring 会将其解释为 Java bean, 不,你是怎么想到的?
  • @Id 为 Spring 解释了什么?什么都没有,只是被忽略了。
  • 我正在阅读的一个教程告诉我...因此,注释或基于 java 的配置是 Java Spring 固有的,并且通过这个 Spring 提供了一个框架,Hibernate 能够使用它自己的 ORM?
  • Spring 工作在 JPA 之上,而 Hibernate 是 Spring 提供的标准 JPA。

标签: spring hibernate


【解决方案1】:

两个框架都在读取他们感兴趣的注解。就这么简单。

【讨论】:

  • 这些注解是Spring框架提供的?
  • 你是在问我还是告诉我?
  • 另外,你怎么知道需要扫描什么?我正在查看 LocalSessionFactoryBean 并看到您必须包含要扫描的 Model 类。这是因为 SessionFactory 与 Hibernate 相关,因此 Hibernate 需要知道在哪里寻找 @Entity 注释?
  • @Entity @Id 所有持久化的东西都是 JPA 的一部分,而不是 Spring。
  • 您可能有多个不相互反映的持久性单元(“数据库”),因此您可以在其中“分组”实体,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
  • 2016-10-25
  • 2019-06-25
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多