在Entity类中定义一个不是列的变量

时间:2014-03-06 23:25:23

标签: java sql entity-framework entity

在我的WAS应用程序中,我需要在Entity类中定义一个映射到表的变量(String)。 因此,与表相关的字段的注释为@Column(name =“column_name”) 我需要向此Entity类添加一个新的字段/变量,该类不是表中的列。如果我将其声明为普通字段,JPA也会在SQL中转换此字段。这导致SQL -206错误(如预期的那样)。

如何宣布此字段?是否有一个注释我可以用它来表示一个自定义变量,并且与该实体定义的表中的任何列无关?

示例:

@Entity
@Table(name = "TABLE_1")
@NamedQueries(
 {
@NamedQuery(name = "abc:findTableContent", query = "SELECT u FROM TABLE_1 u WHERE u.Id = :iD"),
 })
public class TableEntity1 implements Serializable
{
    @Id
    @Column(name = "TABLE1_ID")
    private Long iD;

    @Column(name = "DESC")
    private String desc;


    private String error;    


}

因此,如果我运行namedquery,它将被执行为“SELECT t0.iD,t0.desc,t0.error FROM TABLE_1 u WHERE u.iD =?”

我该如何解决这个问题?谢谢你的帮助!

1 个答案:

答案 0 :(得分:10)

我找到了答案。我可以将字段或变量标记为@ javax.persistence.Transient