CRUD 使用 Hibernate 但没有任何实体
Posted
技术标签:
【中文标题】CRUD 使用 Hibernate 但没有任何实体【英文标题】:CRUD using Hibernate but without any entities 【发布时间】:2011-09-28 10:35:07 【问题描述】:有可能做到这一点吗?我知道 Hibernate 是一个 ORM 工具,它可以将对象映射到数据库中的表。所以我们需要让实体在对应的表上做 CRUD。
但在我们的应用程序中,实体将是动态的,即管理员用户可以动态创建人员、位置表格,然后表格也将在数据库中动态生成。
我们可以使用 hibernate 来做到这一点,或者我们将不得不使用简单的 JDBC 来做到这一点?我们不想使用 JDBC,因为我们希望我们的应用程序在不同的数据库上运行,例如 mysql、mssql 和 oracle。
请帮忙。
【问题讨论】:
【参考方案1】:可以在没有实体的情况下使用 Hibernate。看这里: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/persistent-classes.html#persistent-classes-dynamicmodels
【讨论】:
【参考方案2】:这是不可能的,我什至无法想象这应该如何工作。老实说,您的应用程序的整个设计看起来很可疑,但没关系。
Hibernate 是关于对象的——如果您事先不知道表结构,则无法创建映射到这些表的对象,也无法使用它们。您可以改用映射 (column
-> value
),但 Hibernate 不支持这种方法。
所以你不得不回退到 JDBC(但是大声喊叫,使用像 MyBatis 或 JdbcTemplate 这样的抽象),因为 Hibernate 不支持这种方法。
【讨论】:
您好,感谢您的回复。我也有同样的想法。我猜将不得不使用JDBC。 :)【参考方案3】:关系数据库不适用于此用例。你可能会过得更好 使用一些键值存储/nosql 解决方案
【讨论】:
以上是关于CRUD 使用 Hibernate 但没有任何实体的主要内容,如果未能解决你的问题,请参考以下文章
Hibernate Validator with Hibernate Dynamic Models (No Entity Class)
org.hibernate.AnnotationException:没有为使用 JPA XML 实体映射的实体指定标识符