Reference to superclass in orm.xml required?
Hi,
I've been experimenting with TopLink essentials for the past few days and am pretty impressed so far. Nice work :)
Just one thing I noticed: it seems that if I create an orm.xml for an entity, I must include an <entity> tag for that entity's superclass even though the superclass's metadata has already been loaded from another orm.xml file. TopLink doesn't seem to demand a metadata-complete mapping for the superclass, but I was wondering if it is required by the JPA spec.
The way my app is distributed prevents me from having a single orm.xml file.
Roger
I've discovered that you also need a entry for entities in relationships (or one-to-one relationships at least). Otherwise, the exception is
Exception [TOPLINK-41] (Oracle TopLink Essentials - 2006.5 (Build 060511)):
oracle.toplink.essentials.exceptions.DescriptorException
Exception Description: A non-read-only mapping must be defined for the
sequence number field.
Descriptor: RelationalDescriptor(figbird.commerce.entities.Product -->
[DatabaseTable(fb_metadata), DatabaseTable(FB_PRODUCTS)])
Similar Messages
-
Persistence-unit-defaults in orm.xml do not impact TopLink Essentials?
Hi,
I have configured a default schema in the persistence-unit-defaults section of the orm.xml mapping file:
<persistence-unit-metadata>
<persistence-unit-defaults>
<schema>SCHEMA_NAME</schema>
</persistence-unit-defaults>
</persistence-unit-metadata>
The queries that TopLink JPA is generating (and logging) do not qualify any table name with the schema as configured above. It seems that the persistence-unit-default settings are ignored by TopLink JPA?
N.B: TopLink mentions that it is searching for a file named orm.xml and that it found one - so the file should be processed by TopLink. ("Found a default mapping file at ...")
Any ideas?Thank you for mentioning that workaround.
Regarding to the results of my tests, the persistence-unit-defauls "schema" does not affect sequences? Is this part of the bug and can expected to be fixed or is the schema/owner of sequences outside the JPA spec?
currently I found no other solution than to specify the default schema in the persistence-unit-defaults in orm.xml AND declarate all sequences used with the fully qualified name, i.e. when switching the schema this would require changing it at multiple points....
regards,
hans -
JPA: Translating Annotations to Metadata (orm.xml)
I'm trying to translate the commented annotations in the next two classes to metadata:
package pfc.model;
import java.io.Serializable;
import java.util.Date;
//import javax.persistence.*;
//@Entity
public class DadesComentari implements Serializable {
//@Id
//@Column(name = "id", nullable = false)
private Integer id;
//@Column(name = "accio")
private Integer accio;
//@Column(name = "idAutor", nullable = false)
private String idAutor;
//@Column(name = "perfilAutor", nullable = false)
private Integer perfilAutor;
//@Column(name = "dataCreacio", nullable = false)
//@Temporal(TemporalType.TIMESTAMP)
private Date dataCreacio;
//@Column(name = "text", nullable = false)
private String text;
//@Column(name = "idIncidencia", nullable = false)
private Integer idIncidencia;
...(Setters and getters)...
package pfc.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
//import javax.persistence.*;
//@Entity
public class DadesIncidencia implements Serializable {
//@Id
//@Column(name = "id", nullable = false)
private Integer id;
//@Column(name = "servAfectats", nullable = false)
private Integer servAfectats;
//@Column(name = "idCreador", nullable = false)
private String idCreador;
//@Column(name = "idTecnic")
private String idTecnic;
//@Column(name = "idTD")
private String idTD;
//@Column(name = "visitaSolicitada", nullable = false)
private Boolean visitaSolicitada;
//@Column(name = "dataCreacio", nullable = false)
//@Temporal(TemporalType.TIMESTAMP)
private Date dataCreacio;
//@Column(name = "dataTancament")
//@Temporal(TemporalType.TIMESTAMP)
private Date dataTancament;
//@Column(name = "nomClient")
private String nomClient;
//@Column(name = "cognomsClient")
private String cognomsClient;
//@Transient
private ArrayList comentaris;
...(Setters and getters)...
}To do it I have created the next file orm.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
version="1.0">
<package>pfc</package>
<entity class="pfc.model.DadesIncidencia" name="incidencia">
<attributes>
<id name="id">
<column name="id" nullable="false"/>
</id>
<basic name="servAfectats">
<column name="servAfectats" nullable="false"/>
</basic>
<basic name="dataCreacio">
<column name="dataCreacio" nullable="false"/>
<temporal>TIMESTAMP</temporal>
</basic>
<basic name="dataTancament">
<column name="dataTancament"/>
<temporal>TIMESTAMP</temporal>
</basic>
<basic name="idCreador">
<column name="idCreador" nullable="false"/>
</basic>
<basic name="idTecnic">
<column name="idTecnic"/>
</basic>
<basic name="idTD">
<column name="idTD"/>
</basic>
<basic name="visitaSolicitada">
<column name="visitaSolicitada" nullable="false"/>
</basic>
<basic name="nomClient">
<column name="nomClient"/>
</basic>
<basic name="cognomsClient">
<column name="cognomsClient"/>
</basic>
<transient name="comentaris"/>
</attributes>
</entity>
<entity class="pfc.model.DadesComentari" name="comentari">
<attributes>
<id name="id">
<column name="id" nullable="false"/>
</id>
<basic name="idIncidencia">
<column name="idIncidencia" nullable="false"/>
</basic>
<basic name="perfilAutor">
<column name="perfilAutor" nullable="false"/>
</basic>
<basic name="idAutor">
<column name="idAutor" nullable="false"/>
</basic>
<basic name="dataCreacio">
<column name="dataCreacio" nullable="false"/>
<temporal>TIMESTAMP</temporal>
</basic>
<basic name="accio">
<column name="accio" />
</basic>
<basic name="text">
<column name="text" nullable="false"/>
</basic>
</attributes>
</entity>
</entity-mappings>Which I reference from the persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="pfc" transaction-type="RESOURCE_LOCAL">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<mapping-file>pfc/model/orm.xml</mapping-file>
<!--<class>pfc.model.DadesIncidencia</class>
<class>pfc.model.DadesComentari</class> -->
<properties>
<property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="toplink.jdbc.url" value="jdbc:mysql://localhost/pfc"/>
<property name="toplink.jdbc.password" value=""/>
<property name="toplink.jdbc.user" value="root"/>
</properties>
</persistence-unit>
</persistence>Having done only these modifications, the next exception appears when trying to execute the application:
Exception [TOPLINK-30005] (Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))): oracle.toplink.essentials.exceptions.PersistenceUnitLoadingException
Exception Description: An exception was thrown while searching for persistence archives with ClassLoader: WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@f4f44a
Internal Exception: javax.persistence.PersistenceException: Exception [TOPLINK-28018] (Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))): oracle.toplink.essentials.exceptions.EntityManagerSetupException
Exception Description: predeploy for PersistenceUnit [pfc] failed.
Internal Exception: java.lang.NullPointerException
at oracle.toplink.essentials.exceptions.PersistenceUnitLoadingException.exceptionSearchingForPersistenceResources(PersistenceUnitLoadingException.java:143)
at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createEntityManagerFactory(EntityManagerFactoryProvider.java:169)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:110)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
at pfc.model.DAOFactory.connectarBD(DAOFactory.java:15)
at pfc.model.FaçanaDelModel.obtenirDadesIncidencia(FaçanaDelModel.java:33)
at pfc.IncidenciaController.handleRequest(IncidenciaController.java:18)Anybody can see what I'm not doing properly?
Thank you in advance, and sorry for my "still in progress" EnglishThere is not yet any built in support for this.
What I have been doing is configuring JDev to understand the orm.xml schema so that when editing the file with JDeveloper it can assist me on the available elements and attributes as well as a default structure.
JDeveloper :: Tools -> Preferences -> XML Schema -> Add
jar:file:/C:/oracle/10.1.3.1/preview/jdev/toplink/jlib/toplink-essentials.jar!/orm_1_0.xsd
Now when you wish to create an orm XML instance document in your project you can use:
New -> General -> XML -> XML Document from Schema
Select "Use Registered Schema"
Select the ORM target namespace: http://java.sun.com/xml/ns/persistence/orm
This will give you a basic orm.xml file properly configured which you can then use to define your mappings.
Doug -
Cannot open persistence.xml nor orm.xml
I had to kill JDev process after I realized Data Control could not be created on a session EJB since application was not created with JSF,EJB technology. JDev kept trying to create Data Control. I left it trying over night and in the morning I killed process. I restarted JDev and tried to open files persistence.xml and orm.xml, but JDev just showed up message "Loading...Please wait." and it was stuck with that message. I could open all other files except these two XML files.
Is there a workaround?CG_AUDIO wrote:
Has anyone been able to open a pages file that has the cannot open .xml required error?
I opened a doc from pages'08 in pages'09 made some crucial changes saved as new name and cannot open it again now.
I tried opening in '08 and of course no luck.
I just finished 3 hours of writing and cannot do that again!!!
3 hours of writing without no intermediate save in different files is silly.
Attach the file to a mail
send them to my maibox.
I will try to revive the raw text.
Click my blue name to get my address.
IMPORTANT: search for the keystring _"backup, backup"_ in existing threads !
Yvan KOENIG (VALLAURIS, France.) jeudi 20 août 2009 20:09:19 -
JPA - orm.xml mapping problem.
Hi folks,
I am trying to give entity mappings in orm .xml
Sequence generation tag is not working fine for me.
its giving me a xml parsing error.
can some body give me a right combination .
I want to give automatic generation for a database field which is not the primary key.
My orm.xml file is given below....
some body pls help me....
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="1.0" xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd">
<entity class="com.git.oms.common.entity.ORDReply" name="ORDReply" metadata-complete="false">
<table name="ORDReply"/>
<attributes>
<basic name="serialNo">
<column name="SerialNo"/>
<generated-value generator="ORDREPLY_SEQ" strategy="SEQUENCE"/>
<sequence-generator name="ORDREPLY_SEQ" sequence-name="ORDREPLY_SEQ" allocation-size="1"/>
</basic>
</attributes>
</entity-mappings>Hi folks,
I am trying to give entity mappings in orm .xml
Sequence generation tag is not working fine for me.
its giving me a xml parsing error.
can some body give me a right combination .
I want to give automatic generation for a database
field which is not the primary key.
My orm.xml file is given below....
some body pls help me....
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="1.0" xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persist
ence/orm orm_1_0.xsd">
<entity class="com.git.oms.common.entity.ORDReply" name="ORDReply" metadata-complete="false">
<table name="ORDReply"/>
<attributes>
<basic name="serialNo">
<column name="SerialNo"/>
<generated-value generator="ORDREPLY_SEQ" strategy="SEQUENCE"/>
<sequence-generator name="ORDREPLY_SEQ" sequence-name="ORDREPLY_SEQ" allocation-size="1"/>
</basic>
</attributes>
</entity-mappings>I am not able to configure a sequence for a Id coloumn also.
Getting some xml parsing error. Some one please help me by giving some sample.
I am also using same kind of orm.xml and sequence-generator -
Need to reference file name within the XML Output
Not sure if this is possible, as I'm new to the livecycle/XML world. But I need to be able to reference a file within the XML output from the PDF.
The Scenario is that a pdf form of a business card will be issued to 50 franchisees for them to type in their names and mobiles, click submit and the XML file to be sent to myself, and be imported in to InDesign populating their data ready for printing. Up to here I have it working perfectly.
However as each franchisee have a combination of up to 5 logos to place in the bottom corner to save having to have various templates with different combinations of logos and having to ensure the correct templates are used. I intend to reference each companies combination as an EPS and make the reference within the xml out and have it import directly in with the other data. I can type the code directly within the xml but I would like to have the form reference it directly in the xml output. Is this possible or am expecting to much of livecycle? Any help/advice greatly appreciated.
DavidHi MadhavaGanji,
I have post how to validate the file name, header row against definition table which stored the file name and column definition.
Take a look and see if this is helpful.
http://sqlage.blogspot.com/2013/11/ssis-validate-file-header-against.html
http://sqlage.blogspot.com/ -
Error when using CDATA in orm.xml
Hi everyone!
I am writing an application using TopLink Essentials. Something really weird is happening when I use CDATA sections in my orm.xml file to declare named queries.
I declared a named query like this in my orm.xml file:
</named-query>
<named-query name="findLatestExchangeRate">
SELECT a
FROM ExchangeRate a
WHERE
a.code = :currency AND
a.date = (SELECT MAX(b.date)
FROM ExchangeRate b
WHERE b.code = :currency AND b.date &lt;= :before)
</query>
</named-query>
This worked like a charm.
Nonetheless, when I decided to use CDATA sections to declare the query and ovoid XML entities, somewhat like this:
<named-query name="findLatestExchangeRate">
<query>
<![CDATA[
SELECT a
FROM ExchangeRate a
WHERE
a.code = :currency AND
a.date = (SELECT MAX(b.date)
FROM ExchangeRate b
WHERE b.code = :currency AND b.date <= :before)
]]>
</query>
</named-query>
Then the weirdest thing happen. I am not even able to create the EntityManagerFactory. I get an error that says:
Exception in thread "main" Local Exception Stack:
Exception [TOPLINK-8028] (Oracle TopLink Essentials - 2.0.1 (Build SNAPSHOT (02/01/2008))): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Syntax error parsing the query [findLatestExchangeRate:
], line 1, column 41: unexpected end of query.
Internal Exception: line 1:41: unexpected token: null
Does anyone has any idea of what could be going wrong here?
Thanks in advance for any help you can give me.
Edited by: [email protected] on Oct 13, 2008 1:10 PMI tried it in EclipseLink 1.0.1 and had no problems. I would recommend filing a bug against TopLink Essentials in case there is a known work-around.
If you are using TopLink Essentials as a supported Oracle TopLink user please consider upgrading to Oracle TopLink 11g (includes EclipseLink) or if that is not possible please open a service request with Oracle support.
Doug -
JPA - generate orm.xml from existing JPA annotations
Hi,
Is there any tool which can be used to generate the orm.xml file from existing JPA java annotated source files?
Thank you,
VirgilYes. Map some of the classes with JPA annotations or orm.xml, for the other leave them unmapped, and don't list them in your persistence.xml. Then in a SessionCustomizer you can load your native EclipseLink project.xml file using the XMLProjectReader, and then manually add the descriptors from the Project to the JPA EclipseLink Session using DatabaseSession.addDescriptors(Project).
-
Hi,
I want to keep all my queries into orm.xml because I need to avoid select statements in my code. I got the following in my orm.xml:
<named-query name="Person.basic">
<query>SELECT p FROM Person p WHERE p.name LIKE :name</query>
</named-query>
And then I make the query:
Query query = em.createNamedQuery("Person.basic");
What I need now is to access the query string in order to add a dynamic condition. It would be something like this:
String newQuery = query.getQueryString() + "AND p.surname LIKE :surname";
Query q2 = em.createQuery(newQuery);
Is there a way to do this? I know I can put this condition inside orm.xml, but what if the user fills a
search form with different fields and different combinations?
Regardsat the beginning of your post, you said you didn't want sql queries in your code. but, then you ask how you can put queries in your code...?
named queries cannot be modified at runtime. the point of them is to avoid hard coding sql queries into your code (as you mentioned). if you need to generate queries at runtime, named queries are not going to work for you. -
Output Medium XML Requires HTTP/FTP address - Vendor Transm Medium Maintan
Hi All,
I am trying to change Transmission Medium as XML from PRN (Print) in Vendor Master (business partner mainatnance - BBPMAININT Tr CodE). My SRM System is giving is error message like u201COutput Medium XML Requires HTTP/FTP addressu201D when I am trying to change Vendor Master. Please let me know where I can Maintain HTTP/FTP Address in SRM.
Kind Note: We are on SRM 4.0 and ECC 5.0 with Extended Classic Scenario
Thanks a lot in advance.
Thanks,
SudarsnHi,
Did you set communication protocol as XI ?
http://help.sap.com/saphelp_srm40/helpdata/en/95/f6a93e08503614e10000000a114084/frameset.htm
Regards,
Masa -
Mapping error: Character reference "&# 00" is an invalid XML character
Hi All,
Iam performing the RFC(R/3) -> PI(7.1) -> SOAP (third party software) ; Synchronous scenario.
The messages are reaching the PI server , but the a mapping errors is occurring due to dummy characters ""& #00" been sent to the XI system.
Is this due to the R/3 sending the invalid characters or these been generated in PI system. Would you suggest any notes,patches to resolve the issue?
"MAPPING">EXCEPTION_DURING_EXECUTE
com.sap.aii.utilxi.misc.api.BaseRuntimeException:
Character reference "& # 00" is an invalid XML character
Many thanks!
guruHi,
If you go through this link last page and last para, which says..
"The only solution is to use a Java mapping before the actual mapping to perform the escaping."
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/502991a2-45d9-2910-d99f-8aba5d79fb42
Regards,
Sarvesh -
is there any tool to generate orm.xml ?
Thanks..No, as far as I know. Most IDEs are focusing on annotations. However the next releases of Dali for Eclipse and JDeveloper will provide orm.xml creation and editing support. Dali 1.0 is scheduled to be released as part of the coordinated Europa Eclipse release in June of next year--but milestone builds will be available sooner. Check out http://www.eclipse.org/dali and the milestone plan available from the sidebar on the right. The JDeveloper release date has not been finalized.
--Shaun -
Kodo extensions in orm.xml?
I'm evaluating Kodo for use with JPA, but I would like to use externalized mapping files. These work fine for standard "to the spec" mappings, but I'd like to be able to use some of the Kodo-specific extensions (such as custom field handlers). Is this possible within an externalized JPA mapping file (e.g. orm.xml)? All of the docs that I have found for Kodo JPA use annotations.
"Amol" <[email protected]> writes:
I have been going thru mails in the newsgrp, for help in my work and I
found a lot of extensions used (r they only kodo-specific). I have gone
thru all of the documentation tht comes with 2.2 release but havent a
documentation for this extensions. Where can i find them.The JDO standard defines a syntax for adding vendor-specific metadata to
the JDO metadata files. So yes, the extensions that you are referring to
are Kodo-specific.
Most of our vendor extensions are used for controlling the
object-relational mapping that Kodo performs.
Look in the metadata and existing schema sections of the 2.2.2
documentation for more information on possible extensions. The 2.2.3
documentation is formatted slightly differently; it contains an appendix
with a list of all extensions supported by Kodo.
-Patrick
Patrick Linskey [email protected]
SolarMetric Inc. http://www.solarmetric.com -
How to generate orm.xml
Hi,
I would like to know how to generate orm.xml, the mapping file for JPA. I am using jdev 10.1.3.0.4.
Thanks in advanceThere is not yet any built in support for this.
What I have been doing is configuring JDev to understand the orm.xml schema so that when editing the file with JDeveloper it can assist me on the available elements and attributes as well as a default structure.
JDeveloper :: Tools -> Preferences -> XML Schema -> Add
jar:file:/C:/oracle/10.1.3.1/preview/jdev/toplink/jlib/toplink-essentials.jar!/orm_1_0.xsd
Now when you wish to create an orm XML instance document in your project you can use:
New -> General -> XML -> XML Document from Schema
Select "Use Registered Schema"
Select the ORM target namespace: http://java.sun.com/xml/ns/persistence/orm
This will give you a basic orm.xml file properly configured which you can then use to define your mappings.
Doug -
Generate of orm.xml from annotations
Hi,
How can a bunch of annotated classes (in JPA) can be processed so that an equivalent orm.xml is generated? The situation is like, I have many annotated Java files and I want to create equivalent orm.xml before the application is actually deployed in production.Hi,
How can a bunch of annotated classes (in JPA) can be processed so that an equivalent orm.xml is generated? The situation is like, I have many annotated Java files and I want to create equivalent orm.xml before the application is actually deployed in production.
Maybe you are looking for
-
Aging in Ar not showing any transaction but its showing all the payments
Hi can anyone help in regard of this problem when i am going to run 7bucket aging report in AR it doesn't showing any transaction but it shows only receipts. even the transaction is due i don't know why its not showing any transaction we have just ge
-
ios 4.3?
-
Admins: What changed with this FAQ I posted?
When I initially composed and posted the FAQ for the Photoshop/Mac section at the following link... http://forums.adobe.com/thread/421402?tstart=0 ...I coded it to include the full size version of the following image, with the direct link just below
-
Daylight savings/Alarm Clock Issues
Since DST, my iphone3G enjoys waking me up the hour before my alarm is set. Granted this could be worse, it could be the hour after... Anywho, need a fix, because my mental sanity is on the line here, I cannot keep hitting the snooze button for the l
-
Host-based access restrictions
What is the preferred method for implementing host-based access restrictions in Directory Server 5.2? I am setting up Solaris 9 clients using the native LDAP client. I tried setting up host-based access using netgorups, and it works great, but found