在eclipselink jpa中使用访问方法功能,为什么EL多次调用方法?

时间:2013-10-17 00:19:36

标签: jpa orm mapping eclipselink

提前致谢。 我正在尝试使用get& amp;为我的java对象中的字段设置方法。 我的问题是我注意到EclipseLink在存储到数据库时多次调用getter方法。它只在db中存储一次。 它还在“WRITING TO”数据库中调用setter方法。我期望只在“从数据库读取”期间调用以构建返回对象。

以下是我的示例代码

<entity-mappings ><basic name="column1" />
<basic name="longstring" >
            <column name="col2" nullable="true"   />
            <access-methods get-method="getLongString" set-method="setLongString" />
        </basic>

public class TestObj {
    String column1; 
    String col2;
public String getLongString() {  return "some long string";  }
public void setLongString(String col2) {  this.col2 = col2;  } 
}

知道EclipseLink究竟在内部做了什么以及为什么它在写入db期间尝试调用'set'方法?还多次?

感谢

戈皮

1 个答案:

答案 0 :(得分:0)

EclipseLink必须使用您的访问方法来获取和设置实体中的值以及为跟踪更改和维护共享缓存而需要进行的任何锥体。调用方法时的堆栈跟踪将指示其使用的原因。