【问题标题】:Metamodel classes generated by Hibernate toolsHibernate 工具生成的元模型类
【发布时间】:2011-07-01 13:16:20
【问题描述】:

我在 Eclipse 中使用 Hibernate Tools 对现有数据库的域实体进行逆向工程。

我或多或少地生成了我想要的一切,尽管我仍然得到了一批与我的域类一起生成的 "Metamodel" 类。这些是同名的类,但带有后缀和下划线“_”。

我已经阅读了一些关于元模型概念 here 的文档,但我仍然不确定它们的目的...

简单地删除这些类对我来说安全吗?如果它们对我没有用,我宁愿不要让它们弄乱我的包浏览器。

【问题讨论】:

    标签: java hibernate jpa hibernate-tools metamodel


    【解决方案1】:

    元模型类由 JPA 2.0 中添加的“类型安全标准 API”使用。有关此 API 的详细信息在这里:

    http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html_single/#querycriteria

    Hibernate EntityManager 可以使用元模型类来验证 Criteria 对于给定的实体集是否有效。例如,如果您尝试编写一个针对实体属性添加“where”子句的查询,Hibernate 可以验证该属性是否确实存在于您的模型中,并且(我相信)会生成编译时错误或警告。使用 Hibernate 的旧 Criteria API,验证此类查询的唯一方法是执行它并查看是否引发了异常。

    如果您不打算使用此 Criteria API,那么删除这些类可能是安全的。

    【讨论】:

    • 感谢 Cliff,一个很好的总结。我暂时保留这些类,以防我以后需要 Criteria API。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多