0

提前致谢。我正在尝试对我的 java 对象中的一个字段使用 get & set 方法的“访问方法”。我的问题是我注意到 EclipseLink 在存储到数据库时多次调用 getter 方法。它只在数据库中存储一次。并且它还在“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”方法?还有多次?

谢谢

戈皮

4

1 回答 1

0

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

于 2013-10-17T02:21:14.010 回答