I have tried OpenJPA 2.1 hope for better luck.
how could this happen? I do have a colunmn "UID" in test.A, just that it is
not the Primary Key. Is this intended or a bug?
class A
@Entity
@Table(name = "A")
@SecondaryTable(name = "B", pkJoinColumns = { @PrimaryKeyJoinColumn(name =
"PUID", referencedColumnName = "UID") })
public class A implements Serializable {
/**
*
*/
private static final long serialVersionUID = -422971967901446019L;
@Id
@Column(name = "ID")
private String id;
@Basic(optional = true)
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "UID", unique = true)
private Integer uid;
@Basic(optional = true)
@Column(name = "DATA")
private String data;
@Basic(optional = true)
@Column(table = "B", name = "AUXDATA")
private String auxdata;
public A() {
}
public A(String id) {
this.id = id;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public String getAuxdata() {
return auxdata;
}
public void setAuxdata(String auxdata) {
this.auxdata = auxdata;
}
}
375 TestPersistence INFO [main] openjpa.jdbc.JDBC - Using dictionary
class "org.apache.openjpa.jdbc.sql.DB2Dictionary".
Exception in thread "main" <openjpa-2.1.0-r422266:1071316 fatal user error>
org.apache.openjpa.persistence.ArgumentException:
"com.ibm.taiss.jpa.test.A.auxdata" defines a target of "UID" for join column
"PUID", but that target does not exist in table "test.A".
at
org.apache.openjpa.jdbc.meta.MappingInfo.mergeJoinColumn(MappingInfo.java:1533)
at
org.apache.openjpa.jdbc.meta.MappingInfo.createJoins(MappingInfo.java:1322)
at
org.apache.openjpa.jdbc.meta.MappingInfo.createForeignKey(MappingInfo.java:1084)
at
org.apache.openjpa.jdbc.meta.FieldMappingInfo.getJoin(FieldMappingInfo.java:213)
at
org.apache.openjpa.jdbc.meta.FieldMappingInfo.getJoin(FieldMappingInfo.java:182)
at
org.apache.openjpa.jdbc.meta.FieldMapping.mapJoin(FieldMapping.java:585)
at
org.apache.openjpa.jdbc.meta.strats.StringFieldStrategy.map(StringFieldStrategy.java:66)
at
org.apache.openjpa.jdbc.meta.FieldMapping.setStrategy(FieldMapping.java:146)
at
org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(RuntimeStrategyInstaller.java:82)
at
org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping(FieldMapping.java:496)
at
org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:461)
at
org.apache.openjpa.jdbc.meta.ClassMapping.resolveNonRelationMappings(ClassMapping.java:895)
at
org.apache.openjpa.jdbc.meta.MappingRepository.prepareMapping(MappingRepository.java:417)
at
org.apache.openjpa.meta.MetaDataRepository.preMapping(MetaDataRepository.java:762)
at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:651)
at
org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:411)
at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:384)
at
org.apache.openjpa.kernel.BrokerImpl.persistInternal(BrokerImpl.java:2601)
at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2540)
at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2437)
at
org.apache.openjpa.kernel.DelegatingBroker.persist(DelegatingBroker.java:1069)
at
org.apache.openjpa.persistence.EntityManagerImpl.persist(EntityManagerImpl.java:707)
at Test.main(Test.java:32)
--
View this message in context:
http://openjpa.208410.n2.nabble.com/CacadeType-Persist-problem-tp6367387p6376539.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.