Bonjour,
J'ai un souci d'utilisation de OpenJPA sur une base Oracle 10, le tout sur Websphere 6.1.
Je souhaite lire et écrire des données dans une colonne XmlType.
je suis parti des exemples fournis par OpenJPA.
http://openjpa.apache.org/builds/1.0...pping_jpa.html
(chapitre 7.10)
Je parviens à persister des données dans les colonnes Xml Oracle.
Je peux même faire des clauses WHERE sur les champs Xml stockées et récupérer toutes les colonnes non Xml de la table.
PAr contre, dès que j'essaye de récupérer (côté java) mon attribut (shipAddress) qui correspond au champ de type Xml sur Oracle, cet attribut est null (alors que l'id est bien renseigné).
ma classe Order (contient un ID et un objet à serialiser Xml)
ma classe Address
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 import javax.persistence.*; import org.apache.openjpa.persistence.Persistent; import org.apache.openjpa.persistence.jdbc.Strategy; import org.apache.openjpa.jdbc.meta.strats.XMLValueHandler; @Entity @Table(name = "ORDERADDRESS") public class Order { @Id private int id; @Persistent @Strategy ("org.apache.openjpa.jdbc.meta.strats.XMLValueHandler") private Address shipAddress; public Order(){} public int getId() { return id; } public void setId(int id) { this.id = id; } public Address getShipAddress() { return shipAddress; } public void setShipAddress(Address shipAddress) { this.shipAddress = shipAddress; } }
ma table Oracle s'appelle ORDERADDRESS , elle contient un ID (NUMBER) et un champ shipAddress en XMLType.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 import java.util.ArrayList; import java.util.List; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; @XmlRootElement @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType(name = "address", propOrder = { "name", "street", "city" }) public class Address { @XmlElement(name = "name") protected String name; @XmlElement(name = "street") protected List<String> street; @XmlElement(name = "city") protected String city; avec les getters et setters...
Quelqu'un aurait il une piste ? j'ai épluché vraiment pas mal de sites déjà ...
merci
Partager