Der Typ-Klasse " * " wurde nicht verbessert JPA Ausnahme
Ich bin mit WebSphere v8, und mit JPA-Persistenz in Java-EE-6-Umgebung.
Beim Versuch zum ausführen von code, der sich mit einer bestimmten Person, ich in dieser Ausnahme:
javax.ejb.EJBTransactionRolledbackException: nested exception is: javax.ejb.EJBTransactionRolledbackException: nested exception is: javax.ejb.EJBException: Siehe verschachtelte Ausnahme; nested exception is: org.apache.openjpa.die Persistenz.ArgumentException: Der Typ "Klasse au.com.kombinierte.domain.changeroutine.ChangeRoutineConsumedPK" wurde nicht verbessert.
Jedoch dieser Artikel sagt, dass meine Klassen sollten schon verbessert werden zur Laufzeit. ChangeRoutineConsumedPK ist ein Embeddable Klasse. Könnte jemand einen Blick auf meine Klasse und mir sagen was ich falsch mache? danke.
ChangeRoutineConsumed:
@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){...}
}
ChangeRoutineConsumedPK:
@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) {...}
}
- auch passiert es, wenn es keine @Embeddable in JPA key
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den ChangeRoutineConsumedPK-Klasse nicht Hinzugefügt persistence.xml und ich hatte ausgeschaltet automatische Klasse Scannen.
Hinzufügen der Klasse der persistence.xml problem behoben, durch das
wenn Sie sich beim ausführen von main-Klasse übergeben Sie unter parameter in der Ausführung
java -javaagent:/openjpa.jar com.xyz.Main
wenn mit eclipse geben über Wert in der run Configuration > Argumente > VM-Argumente.