java - 在实体类中创建其他公共(public)方法

标签 java hibernate jpa entity

我有一个实体类

    @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/

相关文章:

java - 如何使用 hibernate 逆向工程排除多对一关系?

hibernate 正在不必要地更新多对多

java/groovy/grails instanceof 失败

java - EclipseLink 期望在堆栈上找到对象/数组

java - JPA - 使用 EclipseLink 保持单向一对多关系失败

java - 如何在 Spring Boot 项目中使用 Log4jdbc 记录 SQL 查询、它们的参数和结果?

Java 字符串到数组的处理

java - 在 JPQL 中使用 select unique 并检索所有列

java - 构建期间复制到 Java 资源目录时 Maven 损坏了 WAV 文件

java - 如何使用 CheckBoxTreeSelectionModel 为 JIDE CheckBoxTree setSelectionPaths()?