类型“class *”尚未增强JPA异常

jobtbby3  于 2023-01-21  发布在  其他
关注(0)|答案(3)|浏览(131)

我正在运行WebSphere v8,并在Java EE 6环境中使用JPA持久性。
当我试图运行处理特定实体的代码时,我遇到了这个异常:
事务回滚异常:嵌套异常为:事务回滚异常:嵌套异常为:javax.ejb.EJBException:请参阅嵌套异常;嵌套异常为:org.apache.openjpa.persistence.ArgumentException:类型“类Au.com.组合.域.更改例程.更改例程已用PK”尚未增强。
然而,this article说我的类应该在运行时已经被增强了。ChangeRoutineConsumedPK是一个可嵌入的类。有人能看看我的类并告诉我哪里做错了吗?谢谢。

已使用的更改例程:

@Entity
@Table(name = ChangeRoutineConsumed.TABLE_NAME)
public class ChangeRoutineConsumed extends BaseBusinessObject {

    public static final String TABLE_NAME = "COCHANGEROUTINECONSUMED";

    @EmbeddedId
    private ChangeRoutineConsumedPK id;

    protected ChangeRoutineConsumed() {
        super();
    }

    public ChangeRoutineConsumed(@Min(1) long changeRoutineId, @NotNull String consumedBy){
        this(new ChangeRoutineConsumedPK(changeRoutineId, consumedBy));
    }

    public ChangeRoutineConsumed(@NotNull ChangeRoutineConsumedPK id){
        super();
        setId(id);
    }
    ...
    public int hashCode(){...};
    public boolean equals(Object obj){...}
}

更改例程已用主键:

@Embeddable
public class ChangeRoutineConsumedPK {

    @Column
    private long changeRoutineId;
    @Column
    private String consumedBy;

    public ChangeRoutineConsumedPK(){}

    public ChangeRoutineConsumedPK(long changeRoutineId, String consumedBy) {
        setChangeRoutineId(changeRoutineId);
        setConsumedBy(consumedBy);
    }
    ...

    public int hashCode() {...}
    public boolean equals(Object obj) {...}
}
b1zrtrql

b1zrtrql1#

ChangeRoutineConsumedPK类没有添加到persistence.xml中,并且我已经关闭了自动类扫描。
将该类添加到persistence.xml中修复了该问题

<persistence-unit ...>
...
<class>au.com.combined.domain.changeroutine.ChangeRoutineConsumedPK</class>
...
</persistence-unit>
amrnrhlw

amrnrhlw2#

如果正在从主类执行,请在执行java-javaagent:/openjpa.jar com.xyz.Main时传递以下参数
如果使用eclipse,请在运行配置〉参数〉VM参数中给出上述值。

wxclj1h5

wxclj1h53#

与上面的答案类似,在Intellij中的MacOS上,我向JUnit运行参数添加了以下内容:
-javaagent:/Users/YOUR_USERNAME/.ivy2/cache/org.apache.openjpa/openjpa/bundles/openjpa-3.1.1.jar
这解决了我的问题。

相关问题