snehal dave

Greenhorn
+ Follow
since Oct 12, 2008
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
0
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by snehal dave

What study material did you people read, I also passed SCEA1/OCMJEA1 , but found exam really tough .
12 years ago
In case of InheritanceType.Joined , the values does not get inserted into child table when you are using hibernate as persistence provider. Its bug , in latest version of hibernate it might work
Hi Naresh,
below is the code which i am using to persist the Entity

EntityManagerFactory emf=Persistence.createEntityManagerFactory("JPAService");
EntityManager em=emf.createEntityManager();
em.getTransaction().begin();

Application application=new Application();
Customer customer=new Customer();
Address address=new Address();

List addressList=new ArrayList();
addressList.add(address);

customer.address=addressList;

List customerList=new ArrayList();
customerList.add(customer);

application.customer=customerList;

em.persist(application);


em.getTransaction().commit();


and this is what i see in log file

Hibernate: select SEQ_LCT.nextval from dual
insert into APPLICATION(status, id) values (?, ?)
insert into CUSTOMER (FIRSTNAME, GAUR_APPL_FLAG, INITIALNAME, LASTNAME, MIDDLENAME, id, customerid) values (?, ?, ?, ?, ?, ?, ?)
update CUSTOMER set id=? where id=? and customerid=?
update ADDRESS set id=?, CUSTOMERID=? where ADDRESSID=? and id=? and customerid=?

In the code i have not mentioned all the fields of entity .. the Mapping between Application and Customer work fine i.e. i am able to insert primary key of Application table into Customer table .

But between Customer and Address JPA (using Hibernate) does not work , my requirement is to insert both customerid and id from CUSTOMER to ADDRESS table but UPDATE statement gets fired.


Hibernate: select SEQ_LCT.nextval from dual
insert into APPLICATION(status, id) values (?, ?)
insert into CUSTOMER (FIRSTNAME, GAUR_APPL_FLAG, INITIALNAME, LASTNAME, MIDDLENAME, id, customerid) values (?, ?, ?, ?, ?, ?, ?)
update CUSTOMER set id=? where id=? and customerid=?
update ADDRESS set id=?, CUSTOMERID=? where ADDRESSID=? and comp_appl_id=? and customerid=?

Instead of inserting a report , a update statement gets fired for address table
My requirement is as below.

Table: Application(id);

Table: Customer(Id,custid); ID is FK to Application table

Table: Address(Id,custid,addrid); Id and CustId are FK to Customer tab;e

My Mapping between Customer & Address table does not work. My Requirement is to insert Id & CustId in Address table.





Can anybody help me on this