在我的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 =?”
我该如何解决这个问题?谢谢你的帮助!
答案 0 :(得分:10)
我找到了答案。我可以将字段或变量标记为@ javax.persistence.Transient