【问题标题】:How to hide object attribute in Hibernate?如何在 Hibernate 中隐藏对象属性?
【发布时间】:2016-08-26 12:59:57
【问题描述】:

我有一个类 User,它有两个属性:firstNamelastName。我想知道,是否可以从数据库中返回 User 对象,隐藏 lastName 属性。

【问题讨论】:

  • “隐藏”是什么意思?什么结果你要完成什么? “从数据库中返回用户对象”是什么意思?您用来读取用户实体的代码是什么?问题不清楚。
  • 如果您试图在 API 中隐藏结果,也许您必须考虑使用 DTO。

标签: hibernate spring-boot


【解决方案1】:

我提出了两种隐藏对象属性的方法,

查询中的第一个:

String query = "SELECT u.firstname FROM User u WHERE ...";
        return entityManager.createQuery(query, String.class).getSingleResult();

您只需获得 firstname 属性。

第二种方式,你得到所有的用户对象,但你将姓氏设置为“”;

public User findUser(){
    String query = "FROM User u WHERE ...";
            return entityManager.createQuery(query, User.class).getSingleResult();
}

调用 findUser() 之后

User user = userService.findUser();
user.setLastName("");

这是一个使用 entitymanager 的示例,但您也可以使用会话工厂来执行此操作。

【讨论】:

    猜你喜欢
    • 2019-06-16
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2013-03-15
    相关资源
    最近更新 更多