sách gpt4 ai đã đi

java - 解决 Hibernate 的微妙之处

In lại 作者:行者123 更新时间:2023-11-30 09:35:48 26 4
mua khóa gpt4 Nike

我已经花了几天时间研究 Hibernate,并且有几个关于它的小问题,这些问题本身并不值得一一讨论,但我认为,它们一起有助于深入了解 Hibernate 的整体运作方式:

  • 要创建一个 Hibernate 实体,必须在 hibernate.cfg.xml 配置文件中添加对它的引用,cũng như将相应的 POJO 注释为 @实体。这感觉非常多余。为什么可以只使用注释而跳过 XML 条目?
  • Hibernate 似乎通过其 Query API 对参数绑定(bind)提供了很好的内置支持,但我没有看到 Criteria API 有这样的选项。 Criteria 实例是否可以进行参数化:如果可以,如何进行,如果不能,为什么?
  • 我看到许多 L2(二级)缓存提供程序:EhCache、OSCache、SwarmCache 等。是否可以编写您自己的 CacheProvider,将其放在运行时类路径中并让 Hibernate 使用您自己的自主开发的缓存系统(就像 SLF4J 对记录器绑定(bind)所做的那样)?

Cảm ơn trước nhé!

1 Câu trả lời

  1. 因为它会强制 Hibernate 扫描类路径中的所有类以发现带注释的类。并且因为您可能不想在应用程序中使用类路径中的某些实体。或者您可能希望在 session 工厂中有一些实体,而在另一个工厂中有一些实体。甚至是两个独立 session 工厂中的同一个实体。

  2. Criteria API 具有直接绑定(bind)参数的方法:Restrictions.eq("someProperty", someValue); 例如。

  3. 当然可以编写您自己的二级缓存,但您必须配置 Hibernate 才能使用它,就像您对所有其他提供程序所做的那样。删除类路径中的类是不够的。

关于java - 解决 Hibernate 的微妙之处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11142913/

26 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com