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

使用eclipselink jpa中的访问方法功能,为什么EL多次调用方法?,jpa,orm,mapping,eclipselink,Jpa,Orm,Mapping,Eclipselink,提前谢谢。 我正在尝试使用“访问方法”,对java对象中的字段使用get&set方法。 我的问题是,我注意到EclipseLink在存储到数据库时多次调用getter方法。它在数据库中只存储一次。 它还在“写入”数据库期间调用setter方法。我希望只有在“读取”数据库以构建回对象的过程中才会调用它 这是我的示例代码 <entity-mappings ><basic name="column1" /> <basic name="longstring" >

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

公共类TestObj{
字符串列1;
字符串col2;
公共字符串getLongString(){返回“一些长字符串”;}
public void setLongString(字符串col2){this.col2=col2;}
}
知道EclipseLink在内部到底做了什么吗?知道它为什么在写入db时尝试调用“set”方法吗?还有多次

谢谢


Gopi

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