当前位置: 首页 > 面试题库 >

在Hibernate条件结果中排除bean的字段

公孙栋
2023-03-14
问题内容

这是我从数据库中获取用户bean的方法。

session.createCriteria(User.class).list();

这将从数据库返回所有用户记录。有趣的是,我不想从数据库获取密码字段。只想在检索时排除该字段。

我有选择

1)在其他领域使用投影。这需要更多代码才能添加到投影列表中。所以放弃了这个想法。

2)使用Sql,我需要编写一个手动查询,这会杀死Hibernate的主题。

是否有可能排除Bean的列值?


问题答案:

假设以下是您的POJO:

User.java

private long id;
private String fName;
private String lName;

// getter - setter of all fields

现在假设您只想获取idfName字段,而不要获取lName

除了您描述的两种方法之外,还有第三种方法可以使用HQL来实现。

Query q1 = session.createQuery("Select new User(id, fName) from User");
List<User> users = q1.list();

修改 User.java 以使其具有另一个构造函数,如下所示:

public User(long id, String fName)
    {
        this.id = id;
        this.fName = fName;
    }

简而言之,无论您要检索什么字段,都可以在构造函数和查询中列出它们。

希望这可以帮助。



 类似资料:
  • 我的枚举: 对于所有查询,当时,有可能说永远不返回Entity

  • 我想从ElasticSearch的结果文档中排除一个字段。我浏览了ElasticSearch.org的这个文档http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-fields.html但当我尝试时,这不起作用。我在SO上看到了同样的问题。有没有办法在Elasticsearch查询中

  • 我得到异常后,我适当的结果criteria.unique结果()对象报价。目的查询-从数据库Oracle的表“报价”中获得随机结果 org.hibernate.exception.SQLGrammarExc0019:无法提取org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelega

  • 问题内容: 我在不返回任何值时遇到问题。数据库中有符合此条件的帐户。有些困惑为什么他们不被退回。有什么建议? 问题答案: 不要使用。从语义上讲,这是违反直觉的。如果子查询中的 任何 值为,则不返回任何行。 使用代替; 或使用和:

  • 问题内容: 我有一个具有ID,名称,胜利,games_played列的表Player。我将其映射到类Player。我想在Hibernate中执行以下查询(最好使用Criteria,如果无法使用Criteria,则HQL也会有所帮助) 从玩家顺序中选择*(获胜/ games_played) 我希望得到List 按他们的获胜率排序。 感谢您的回答 帕洛 问题答案: Hibernate不支持order

  • 我正试图排除某个特定目标的Swift文件的某些部分。然而,我没有找到#ifndef objective-c指令的任何替代,而且,如果我使用这种形式: 预处理器完全忽略指令并尝试编译TriggerActiveLocationUpdate。请注意#if taxi_coops指令在同一文件的其他部分中得到了遵守。 有没有什么方法可以简单地排除Swift中的一些代码和/或为什么我的修复不起作用?