java - 如何在 hibernate 映射中添加另一个搜索参数?

标签 java hibernate orm hibernate-mapping

我是 hibernate 新手,仍在学习基础知识。如果有人能指出我正确的方向,我将不胜感激。

我有一个类:

目的地

  • ID
  • 姓名
  • 经度
  • 纬度

我可以根据 id 读取目的地,如下所示:

List result = session.createQuery("from Destination as d where d.id=2").list();

但是,我想使用名称从数据库读取目的地。我也许可以写这样的东西作为查询:

String name;  // name set somewhere else, say a function argument
List result = session.createQuery("from Destination as d where d.name LIKE %"+name).list();

我相信这将产生名称类似于(变量)name的所有目的地。

hibernate 中是否有针对此类用例的内置功能,或者是否有更好的方法来处理此问题?

编辑: 我的思考过程中遵循的一件事是:目标数据库表上的名称列将有一个索引设置。我可以使用 hibernate 以某种方式将此索引映射到 Destination 类吗?

最佳答案

您可以通过连接字符串来构建查询。一个更优雅的解决方案是使用 Hibernate Criteria API .

您的查询将类似于:

List result = session.createCriteria(Destination.class)
                  .add(Restrictions.like("name", "%" + name)
                  .list();

关于java - 如何在 hibernate 映射中添加另一个搜索参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9043639/

相关文章:

java - POM 中的 NoClassDefFoundError : javax/validation/Validation occurs even validation-api 1. 1.0.Final

node.js - Sequelize BelongsToMany 自引用反向 SQL QUERY

java - 如何映射弱实体 hibernate

java - Oracle MAF : Is it do anything that IOS xcode and android eclipse does

java - 尝试使用java和clojure在eclipse中创建maven动态Web项目

java - 使用 BouncyCaSTLe 进行 Pad block 损坏错误解码 Rijndael 256

mysql - 保存非英语字符时出现问题

java - EJB3NamingStrategy 与 ImprovedNamingStrategy 外键命名

python - SQLAlchemy 按分钟分组

java - 如何使用Get方法从海量中提取值(value)?