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.

Reply via email to