After further investigation I found that it has nothing to do with the
ElementCollection or PersistentCollection.
The mapping that was working simply was erroneously leaving out the
problematic column.
I fixed the annotation so it's now as follows:
@javax.persistence.CollectionTable(
name="Movie_image",
[email protected](name="Movie_fk"))
@javax.persistence.ElementCollection(targetClass=java.lang.String.class)
@javax.persistence.Lob
public java.util.Collection<org.openanzo.rdf.URI> getImage() throws
org.openanzo.rdf.jastor.JastorException {
The table is now being created correctly but at runtime I'm getting a
ClassCastException at line 1300 in DBDictionary
setClobString(stmnt, idx, (String) val, col);
val is an instance of org.openanzo.rdf.URI which I passed into openjpa
config with:
jpaConf.put("openjpa.jdbc.MappingDefaults",
"ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict,FieldStrategies='"
+ Duration.class.getName() + "=" + DurationValueHandler.class.getName() +
"," + URI.class.getName() + "=" + URIValueHandler.class.getName() + "'");
But I can't seem to find where in the code it's supposed to apply that value
URIValueHandler to create val which could then be cast to a String.
If anyone has any ideas it would be greatly appreciated.
--
View this message in context:
http://openjpa.208410.n2.nabble.com/javax-persistence-ElementCollection-instead-of-org-apache-openjpa-persistence-PersistentCollection-In-tp7580963p7580990.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.