JPA javax.persistence.metamodel.ListAttribute
我正在运行一个JPA测试,我在这篇文章的末尾不断得到错误。我不知道为什么会出现这个错误,但是,在JUnit中测试时没有出现这个错误。我知道这可能是一个普通的信息和一个广泛的问题,但如果有一个简单的答案,我将不胜感激 以下是我的3个类文件:JPA javax.persistence.metamodel.ListAttribute,jpa,openjpa,Jpa,Openjpa,我正在运行一个JPA测试,我在这篇文章的末尾不断得到错误。我不知道为什么会出现这个错误,但是,在JUnit中测试时没有出现这个错误。我知道这可能是一个普通的信息和一个广泛的问题,但如果有一个简单的答案,我将不胜感激 以下是我的3个类文件: package menu.entity; import static javax.persistence.CascadeType.ALL; import java.io.Serializable; import javax.persistence.*;
package menu.entity;
import static javax.persistence.CascadeType.ALL;
import java.io.Serializable;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.List;
@IdClass(menu.entity.FeatureKey.class)
@Entity
@Table(name="FEATURES")
public class Feature implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="PROD_ID",
nullable = false,
insertable = false,
updatable = false,
precision=22)
private BigDecimal prodId;
@Id
@Column(name="FEATURE",
nullable = false,
insertable = false,
updatable = false,
precision=22)
private BigDecimal feature;
@Column(name="FEATURE_NAME", length=50)
private String featureName;
@Column(name="FEATURE_PATH", length=100)
private String featurePath;
@OneToMany(cascade=ALL, mappedBy="featureObj")
private List<Function> functions;
@ManyToOne
@JoinColumns({
@JoinColumn(name="PROD_ID", referencedColumnName="PROD_ID")
})
private Product product;
public Feature() {
}
public BigDecimal getFeature() {
return this.feature;
}
public void setFeature(BigDecimal feature) {
this.feature = feature;
}
public String getFeatureName() {
return this.featureName;
}
public void setFeatureName(String featureName) {
this.featureName = featureName;
}
public String getFeaturePath() {
return this.featurePath;
}
public void setFeaturePath(String featurePath) {
this.featurePath = featurePath;
}
public BigDecimal getProdId() {
return this.prodId;
}
public void setProdId(BigDecimal prodId) {
this.prodId = prodId;
}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
public List<Function> getFunctions() {
return functions;
}
public void setFunctions(List<Function> functions) {
this.functions = functions;
}
}
package menu.entity;
import java.math.BigDecimal;
import javax.annotation.Generated;
import javax.persistence.metamodel.ListAttribute;
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;
@Generated(value="Dali", date="2012-10-01T17:03:26.750-0400")
@StaticMetamodel(Feature.class)
public class Feature_ {
public static volatile SingularAttribute<Feature, BigDecimal> prodId;
public static volatile SingularAttribute<Feature, BigDecimal> feature;
public static volatile SingularAttribute<Feature, String> featureName;
public static volatile SingularAttribute<Feature, String> featurePath;
public static volatile ListAttribute<Feature, Function> functions;
public static volatile SingularAttribute<Feature, Product> product;
}
package menu.entity;
import static javax.persistence.CascadeType.ALL;
import java.io.Serializable;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.List;
@IdClass(menu.entity.FunctionKey.class)
@Entity
@Table(name="FUNCTIONS")
public class Function implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="PROD_ID",
nullable = false,
insertable = false,
updatable = false,
precision=22)
private BigDecimal prodId;
@Id
@Column(name="FEATURE",
nullable = false,
insertable = false,
updatable = false,
precision=22)
private BigDecimal feature;
@Id
@Column(name="FUNC",
nullable = false,
insertable = false,
updatable = false,
precision=22)
private BigDecimal func;
@Column(name="FUNC_NAME", length=50)
private String funcName;
@Column(name="FUNC_PATH", length=80)
private String funcPath;
@OneToMany(cascade=ALL, mappedBy="function")
private List<Task> tasks;
@ManyToOne
@JoinColumns({
@JoinColumn(name="PROD_ID", referencedColumnName="PROD_ID"),
@JoinColumn(name="FEATURE", referencedColumnName="FEATURE")
})
private Feature featureObj;
public Function() {
}
public BigDecimal getFeature() {
return this.feature;
}
public void setFeature(BigDecimal feature) {
this.feature = feature;
}
public BigDecimal getFunc() {
return func;
}
public void setFunc(BigDecimal func) {
this.func = func;
}
public String getFuncName() {
return this.funcName;
}
public void setFuncName(String funcName) {
this.funcName = funcName;
}
public String getFuncPath() {
return this.funcPath;
}
public void setFuncPath(String funcPath) {
this.funcPath = funcPath;
}
public BigDecimal getProdId() {
return this.prodId;
}
public void setProdId(BigDecimal prodId) {
this.prodId = prodId;
}
public Feature getFeatureObj() {
return featureObj;
}
public void setFeatureObj(Feature featureObj) {
this.featureObj = featureObj;
}
public List<Task> getTasks() {
return tasks;
}
public void setTasks(List<Task> tasks) {
this.tasks = tasks;
}
}
package menu.entity;
导入静态javax.persistence.CascadeType.ALL;
导入java.io.Serializable;
导入javax.persistence.*;
导入java.math.BigDecimal;
导入java.util.List;
@IdClass(menu.entity.FeatureKey.class)
@实体
@表(name=“FEATURES”)
公共类功能实现了可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
@列(name=“PROD\u ID”,
nullable=false,
可插入=错误,
可更新=false,
精度=22)
私有bigdecim prodId;
@身份证
@列(name=“FEATURE”,
nullable=false,
可插入=错误,
可更新=false,
精度=22)
私有大十进制特征;
@列(name=“FEATURE\u name”,长度=50)
私有字符串特征名;
@列(name=“FEATURE\u PATH”,长度=100)
私有字符串特征路径;
@OneToMany(cascade=ALL,mappedBy=“featureObj”)
私有列表功能;
@许多酮
@连接柱({
@JoinColumn(name=“PROD\u ID”,referencedColumnName=“PROD\u ID”)
})
私人产品;
公共特写(){
}
公共BigFeature(){
返回此.feature;
}
公共void setFeature(BigDecimal特性){
这个特征=特征;
}
公共字符串getFeatureName(){
返回此.featureName;
}
public void setFeatureName(字符串featureName){
this.featureName=featureName;
}
公共字符串getFeaturePath(){
返回此.featurePath;
}
公共void setFeaturePath(字符串featurePath){
this.featurePath=featurePath;
}
公共BigDecimal getProdId(){
返回此.prodId;
}
public void setProdId(BigDecimal prodId){
this.prodId=prodId;
}
公共产品{
退货产品;
}
公共产品(产品){
本产品=产品;
}
公共列表getFunctions(){
返回函数;
}
公共函数(列表函数){
这个函数=函数;
}
}
包菜单.entity;
导入java.math.BigDecimal;
导入javax.annotation.Generated;
导入javax.persistence.metamodel.ListAttribute;
导入javax.persistence.metamodel.SingularAttribute;
导入javax.persistence.metamodel.StaticMetamodel;
@已生成(value=“Dali”,date=“2012-10-01T17:03:26.750-0400”)
@静态元模型(Feature.class)
公共类功能{
公共静态属性prodId;
公共静态属性特征;
公共静态属性featureName;
公共静态属性特征路径;
公共静态属性函数;
公共静态属性产品;
}
包菜单.entity;
导入静态javax.persistence.CascadeType.ALL;
导入java.io.Serializable;
导入javax.persistence.*;
导入java.math.BigDecimal;
导入java.util.List;
@IdClass(menu.entity.FunctionKey.class)
@实体
@表(name=“FUNCTIONS”)
公共类函数实现可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
@列(name=“PROD\u ID”,
nullable=false,
可插入=错误,
可更新=false,
精度=22)
私有bigdecim prodId;
@身份证
@列(name=“FEATURE”,
nullable=false,
可插入=错误,
可更新=false,
精度=22)
私有大十进制特征;
@身份证
@列(name=“FUNC”,
nullable=false,
可插入=错误,
可更新=false,
精度=22)
私有大十进制函数;
@列(name=“FUNC_name”,长度=50)
私有字符串名称;
@列(name=“FUNC_PATH”,长度=80)
私有字符串路径;
@OneToMany(cascade=ALL,mappedBy=“function”)
私有列表任务;
@许多酮
@连接柱({
@JoinColumn(name=“PROD\u ID”,referencedColumnName=“PROD\u ID”),
@JoinColumn(name=“FEATURE”,referencedColumnName=“FEATURE”)
})
私有特征对象;
公共职能(){
}
公共BigFeature(){
返回此.feature;
}
公共void setFeature(BigDecimal特性){
这个特征=特征;
}
公共BigDecimal getFunc(){
返回函数;
}
公共void setFunc(BigDecimal func){
this.func=func;
}
公共字符串getFuncName(){
返回此.funcName;
}
public void setFuncName(字符串funcName){
this.funcName=funcName;
}
公共字符串getFuncPath(){
返回此.funcPath;
}
公共void setFuncPath(字符串funcPath){
this.funcPath=funcPath;
}
公共BigDecimal getProdId(){
返回此.prodId;
}
public void setProdId(BigDecimal prodId){
this.prodId=prodId;
}
公共功能getFeatureObj(){
返回特性obj;
}
公共void setFeatureObj(功能特性Obj){
this.featureObj=featureObj;
}
公共列表getTasks(){
返回任务;
}
公共任务(列出任务){
这个。任务=任务;
}
}
问候,
保罗
以下是完整的堆栈跟踪:
java.lang.IllegalArgumentException:任何not的属性“函数”
在位于的menu.entity.Feature中找到
org.apache.openjpa.persistence.meta.AbstractManagedType.notFoundException(AbstractManagedType.java:734)
在
org.apache.openjpa.persistence.meta.AbstractManagedType.getAttribute(AbstractManagedType.java:237)
在
org.apache.openjpa.persistence.meta.AbstractManagedType.getAttribute(AbstractManagedType.java:461)
在
org.apache.openjpa.persistence.meta.MetamodelImpl.populate(MetamodelImpl.java:311)
在
org.apache.openjpa.persistence.meta.MetamodelImpl.instantiate(MetamodelImpl.java:257)
在
org.apache.openjpa.persistence.meta.MetamodelImpl.find(MetamodelImpl.java:226)
在
org.apache.openjpa.persistence.meta.MetamodelImpl.(MetamodelImpl.java:91)
在
org.apache.openjpa.persistence.EntityManagerFactoryImpl.getMetamodel(EntityManagerFactoryImpl.java:346)
在