在 Hibernate 中获取 @Transient 属性 的非法状态异常

Getting Illegal state exception for @Transient property in Hibernate

我在模型 class 中有一个 属性,它有 @transient 属性,我使用了这个注解,因为我不希望它与数据库保持一致。但是在 DaoImpl class 的查询中,我在 select 子句中使用了它。所以这给了我 :java.lang.IllegalStateException: No data type for node: org.hibernate.hql.internal.ast.tree.IdentNode

可能是什么原因?我不想删除@transient 注释。

    public class Hello implements Serializable{
    @JsonIgnore
    private String new;

    @Transient
    @JsonIgnore
    private String wanted;

}

在 DaoImpl 中查询 class

SELECT new,wanted from Hello

您不能在查询中使用瞬态 属性。

transient的全部意思就是DB不知道这个属性

Transient 意味着 hibernate 甚至不会尝试将其保存在数据库中,因此如果不保存则不能在查询中使用。如果您检查数据库,您会发现没有为此字段输入任何值,它甚至不应该作为列存在。它只存在于代码中。

默认情况下,如果可能,class 中的所有字段都将保存到数据库中。如果有一个字段不应记录在数据库中,我们会用@Transient 注释标记该字段。因此不会保存数据,这最终意味着无法获取数据

这就是我的意思