Forums Register Login

@OneToMany Example In JPA with transaction type JTA

+Pie Number of slices to send: Send
Hi All,

I need a sample code for @OneToMany relationship.

i have a entity as follows:

Employee.java




PhoneNumber.java



bean is getting deployed successfully in jboss5.1.0.GA without any problem and table is getting created.

I have EmployeeFacade Stateless Session Bean as follows:


PhoneNumberFacade Stateless Session Bean as follows:



both EmployeeFacade, PhoneNumberFacade inherits :



persistence.xml



Client :



ERROR [AbstractFlushingEventListener] Could not synchronize database state with session

and

Caused by: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("EXAMPLE"."PHONENUMBER"."EMPLOYEE_ID")

at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10656)
at org.jboss.resource.adapter.jdbc.WrappedStatement.executeBatch(WrappedStatement.java:774)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 39 more


Please help me to resolve this problem.

Thanks,
Bennet Xavier X.
+Pie Number of slices to send: Send
Hello!

In my copybook where I am writing interesting notes it is written:
To be an entity class must follow these rules:
1. class must be annotated with @Entity
2. class must contain primary key annotated by @Id
3. class must contain public or protected no-argument constructor
4. class annotated by @Entity must be top-level, class without implementing or extending something
5. entity class must be not final, must not contain final variable or methods.
Also it is written:
Persistence provider maps entity to table thanks to annotation.
Do you have persistence provider configured in persistence.xml. If not then look at my persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
<persistence-unit name="OlympicsPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/olympicsDS</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/olympics?zeroDateTimeBehavior=convertToNull"/>
<property name="javax.persistence.jdbc.password" value="123456"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
</properties>
</persistence-unit>
</persistence>
+Pie Number of slices to send: Send
Hi Bennet,
In your case Employee is the parent and PhoneNumber is the child. So, the usual way to do is to create the parent object and add the child objects via the list and then persist the parent object (rather than the child object).
In your case, you should persist the Employee object via the EmployeeFacade (and the PhoneNumber object(s) should be added to the List<PhoneNumber>).
I found a beautiful pie. And a tiny ad:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com


reply
reply
This thread has been viewed 8224 times.
Similar Threads
persist() null pointer exception
Override AbstractFacade ?!
javax.persistence.criteria cannot be resolved to a type & project could not be used in the server.
JPA2.0 CascadeType.ALL doesn't cascade persist
Help with JPA
More...

All times above are in ranch (not your local) time.
The current ranch time is
Apr 16, 2024 05:36:01.