I am working with base WebSphere 7, which includes JPA 1.2.1, and am
interacting with an Oracle 11.2 database. I have a table with an XMLType
column in it that I am trying to persist and later retrieve from. I am
doing my testing using JUnit 4, using ojdbc6.11.1.0.7.0.jar for my driver.
My classes are being enhanced at loadtime using the javaagent.
I have tried 2 different methods to store and retrieve the xmltype column.
My first class uses a simple String attribute, and looks like this
(BasicEntity just contains versioning and user info):
@Entity
@Table(name="SERVICE_SNAPSHOTS")
public class ServiceSnapshot extends BasicEntity {
private static final long serialVersionUID = 5789621189247103676L;
@Id
@Column(name="SS_ID")
@SequenceGenerator(name="id_generatorServiceSnapshot",
sequenceName="SERVICE_SNAPSHOTS_SEQ", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE,
generator="id_generatorServiceSnapshot")
private Long id;
@Column(name="SS_SERVICE_CD")
private String serviceCode;
@Column(name="SS_OPERATION_CD")
private String operationCode;
@Column(name="SS_CONTENTS_XML")
private String contentsXML;
When I persist the objects, things appear to be stored in the database as
expected. If I store and fetch the objects in the same method (so that the
objects are in the entity manager), everything comes back fine. I can query
the database via SQL and the results are returned. However, if I just fetch
the objects, all of the attributes except the XML attribute are properly
fetched. The XML attribute is null. If I log the SQL that's being run, I
see the column in the SQL string, but the contentsXML is still null.
My second uses a JAX-B enhanced object to replace the contentsXML attribute,
and this attribute looks like this:
@Persistent(fetch=FetchType.EAGER)
@Strategy("org.apache.openjpa.jdbc.meta.strats.XMLValueHandler")
@Column(name="ss_contents_xml")
private DEServiceResults results;
I get the same behavior with this class - the results attribute is null,
even though the other attributes are not, and results is in the SQL query
that gets logged.
I can fetch the xml if I use a native query, so I don't think it's a driver
issue. Am I setting up my xmltype incorrectly, is this an OpenJPA problem,
or is this a bug with the IBM version?
Thanks for any help.
Don
--
View this message in context:
http://openjpa.208410.n2.nabble.com/Oracle-XMLType-fetch-problems-tp6208344p6208344.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.