在过去4个月内在中型项目中工作 - 我们 正在使用JPA和Spring - 我很确定JPA不是 对于需要超过CRUD的项目的强大功能 屏幕...查询界面很差,Hibernate没有 尊重JPA规范我需要使用的所有时间和次数 hibernate类,注释和配置。 你们对JPA有什么看法?这不够好吗?
答案 0 :(得分:4)
嗯,我认为大多数时候JPA“足够好”但我很想念Criteria API(仅由Hibernate提供)
答案 1 :(得分:4)
Hibernate已经有很长一段时间了。这就是为什么它有许多功能在JPA中尚不可用。但随着时间的推移,JPA将迎头赶上。在此之前,必要时使用JPA和Hibernate特定设置。如果你以后需要切换,那就容易多了。
答案 2 :(得分:3)
在不了解您的具体案例的情况下,我无法提供具体的指导。看起来你正在使用Hibernate的JPA实现。如果您不喜欢Hibernate的某些内容,可以尝试其他JPA实现。就查询界面而言,如果JPA的查询没有按照您的意愿执行,您始终可以获得普通的旧连接并使用它。框架的天才是 - 至少 - 您不必再次编写所有CRUD代码。我永远不会声称JPA是完美的,但它总是比用手写SQL来做琐碎的事情更好。
答案 3 :(得分:3)
我们通过内部包装框架将JPA 2.0,Hibernate Core,Hibernate Search和Hibernate Validator结合在一起。它做我们投入的一切:)
将它与Maven结合起来,我们也为我们建立了一个数据库!将DBUnit添加到混合中,您就拥有了所需的一切。
通过Lucene进行快速搜索,但使用Hibernate Criteria / HQL查询非常酷。 GWT暗示框背后的所有这些力量都很棒。
答案 4 :(得分:2)
我的建议只是使用Hibernate。 Hibernate加上JPA注释+ Hibernate注释非常强大。您甚至可以将EntityManagerFactory配置为在类路径上自动发现实体,但随后调用getSessionFactory()以利用应用程序中的本机Hibernate API。如果你使用的是Spring,那么使用LocalContainerEntityManagerFactoryBean和HibernateJpaVendorAdapter很容易做到这一点。
答案 5 :(得分:0)
当然,任何ORM都比手写SQL更适合CRUD操作...事情是:我认为没有理由使用JPA代替纯Hibernate,因为我混合了很多。如果我没有得到隐藏的提供者,为什么还要使用JPA?
答案 6 :(得分:0)
使用JPA与Hibernate Annotations的一个好处是自动配置和发现持久化类。此外,它取决于您需要从使用JPA API中断多少时间,如果您只在10%的时间内完成它,它仍然会使交换提供程序比使用hibernate 100更容易您的查询百分比。