Datanucleus enhancer错误:瞬态方法

时间:2013-10-30 23:58:41

标签: java maven jpa datanucleus

我有一个班级

@Entity
public class MyClass extends BaseClass {
    ... 
    public boolean isOpenAt(Date x) {
        return true; // or whatever
    }
}

@MappedSuperclass
@Access(AccessType.Field)
public abstract class BaseClass {
    ...
}

正在运行mvn datanucleus:enhance我收到错误org.datanucleus.metadata.InvalidClassMetaDataException: "MyClass.openAt" : declared in MetaData, but this field doesnt exist in the class!知道原因吗?

我正在使用org.datanucleus:datanucleus-core:3.2.7,org.datanucleus:datanucleus-accessplatform -jpa-rdbms:3.3.2,org.eclipse.persistence:javax.persistence:2.1.0,org .datanucleus:DataNucleus将-行家-插件:3.3.0释放

1 个答案:

答案 0 :(得分:1)

免责声明:我不知道datanucleus是什么。

也就是说,isOpenAt()方法很可能被视为一个getter(类似于getFirstName()),因为根据JavaBeans规范,

  

布尔属性

     

另外,对于布尔属性,我们允许a   getter方法匹配模式:

     

public boolean is<PropertyName>();

     

可以提供此“isPropertyName”方法而不是a   “get”方法,或者除了a之外还可以提供   “得到”方法。在任何一种情况下,如果是   方法存在于布尔属性然后我们将使用   “是”方法来读取属性值。一个例子   布尔属性可能是:

     

public boolean isMarsupial(); public void setMarsupial(boolean m);

尝试将isOpenAt()重命名为seeIfOpenAt(),看看是否有帮助。