如何从现有数据库正确实施 Hibernate?
How to properly implements Hibernate from an already existing database?
我正在尝试使用来自现有 Mysql 数据库的 JPA/Hibernate 创建一个新的 Play 应用程序。
持久性文件中的 hibernate.hbm2ddl.auto
设置为 "update"。
我的 table 帖子有 6 个条目。
问题是当我执行像 "SELECT p FROM Posts p"
这样的 HQL 语句时,我得到了一个空结果,而如果我执行像 "SELECT * FROM posts"
这样的本机查询,我得到了我现有的条目。
我想我在这里漏掉了很多东西,比如 hibernate 的内部缓存系统之类的,有没有类似的东西可以解释这个空结果?
当从现有数据库使用时,Hibernate 是否必须构建一些特定的缓存,以便它 returns 使用 HQL 语句更正结果?为什么需要这样的东西?
My table posts has 6 entries. Problem is when I execute an HQL statement like "SELECT p FROM Posts p", I got an empty result, while if I execute a native query like "SELECT * FROM posts" I got my existing entries.
这听起来好像您必须定义从 mysql 表到 jpa 实体的映射。您可以使用休眠工具自动生成它们(如查看示例 here 了解如何使用 Eclipse 插件执行此操作)。
之后你应该从你的查询中得到一些结果,Hibernate 将一路填充它的缓存。
我正在尝试使用来自现有 Mysql 数据库的 JPA/Hibernate 创建一个新的 Play 应用程序。
持久性文件中的hibernate.hbm2ddl.auto
设置为 "update"。
我的 table 帖子有 6 个条目。
问题是当我执行像 "SELECT p FROM Posts p"
这样的 HQL 语句时,我得到了一个空结果,而如果我执行像 "SELECT * FROM posts"
这样的本机查询,我得到了我现有的条目。
我想我在这里漏掉了很多东西,比如 hibernate 的内部缓存系统之类的,有没有类似的东西可以解释这个空结果? 当从现有数据库使用时,Hibernate 是否必须构建一些特定的缓存,以便它 returns 使用 HQL 语句更正结果?为什么需要这样的东西?
My table posts has 6 entries. Problem is when I execute an HQL statement like "SELECT p FROM Posts p", I got an empty result, while if I execute a native query like "SELECT * FROM posts" I got my existing entries.
这听起来好像您必须定义从 mysql 表到 jpa 实体的映射。您可以使用休眠工具自动生成它们(如查看示例 here 了解如何使用 Eclipse 插件执行此操作)。
之后你应该从你的查询中得到一些结果,Hibernate 将一路填充它的缓存。