我有一个实体类
@Entity
@Table(name = "rule")
public class Rule implements Cloneable, Serializable, IPojoGenEntity, IRule, SequencedEntity {
private String name;
private Service service;
//getter .. setter for service and name
public String getServiceName() {
return (this.service.getName());
}
public void setServiceName(String servicename) {
this.service.setName(servicename);
}
}
我通过 RulClass 对象获取服务名称时遇到异常
public String getServiceName() {
return (this.service.getName());
}
堆栈跟踪
Caused by: com.ibm.db2.jcc.b.SqlException: "RULE0_.SERVICENAME" is not valid in the context where it is used.
at com.ibm.db2.jcc.b.fg.e(fg.java:1596)
at com.ibm.db2.jcc.b.fg.a(fg.java:1206)
at com.ibm.db2.jcc.a.gb.g(gb.java:140)
at com.ibm.db2.jcc.a.gb.a(gb.java:39)
at com.ibm.db2.jcc.a.w.a(w.java:34)
at com.ibm.db2.jcc.a.vb.g(vb.java:139)
我们可以在实体类中使用这样的 getter 和 setter 吗?
我正在使用hibernate、spring、DB2、IBM WebSphere
最佳答案
如果您不想存储它,您应该将其设为@Transient
,正如前面提到的那样
或者
定义 @javax.persistence.Column(name = "service_id") getter 的字段注释,让 hibernate 知道要使用哪一列。
或者
重命名数据库以使服务字段“SERVICENAME”使用默认列名称
关于java - 在实体类中创建其他公共(public)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14827285/