查询与HQL查询的where子句中的字段,但不想选择该字段

时间:2017-06-12 16:24:09

标签: mysql hibernate jpa

实体类

@Entity
@Table("abc")
public class Portfolio {

    @Id
    @Column(name="account_number")
    @JsonProperty("account_number")
    @ApiModelProperty(value = "account_number")
    private String accountNumber;

    @Column(name="query_email")
    private String query_email;
}

HQL查询: 来自投资组合,其中query_email =' abc@gamil.com'

以上查询选择 query_email ,我不需要。 我想忽略select上的query_email。 如果我使用@Transient,则不允许我使用 query_email

进行查询

这种情况还有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

在构造函数上使用投影。

查询:

select new Portfolio(accountNumber) From Portfolio where query_email='abc@gamil.com'

您需要使用与查询相同的类型添加contrucor。

@Entity
@Table("abc")
public class Portfolio {

    @Id
    @Column(name="account_number")
    @JsonProperty("account_number")
    @ApiModelProperty(value = "account_number")
    private String accountNumber;

    @Column(name="query_email")
    private String query_email;

    public Portfolio(String accountNumber) {
        this.accountNumber = accountNumber;
    }

    public Portfolio() {
    }
}

或者然后使用 query.setResultTransformer(Portfolio.class)

Hibernate SQL Query result Mapping/Convert TO Object/Class/Bean