dev@glassfish.java.net

Re: PU with TX Type JTA

From: Arun Gupta <Arun.Gupta_at_Sun.COM>
Date: Fri, 15 Jun 2007 18:25:35 -0700

cil

Marina Vatkina wrote:
> Sorry, I means if you want to use EntityTransaction, you need to have
> EMF injected/lookedup.
I'm just trying to create a JPA Hello World using NetBeans IDE and then
blog about it and I'd like to do it the easiest way :) Injection, to me,
is better than hand-creating a TX!

>
> Do you mean you don't see the data in the table or the table being created?
Yep, neither the table and of course no data.

>
> To get the former, you need transactions to commit the changes, to get
> the latter, you need to use provider-specific tools. Do you use
> GlassFish with Toplink Essentials?
Yes

> If yes, and you use CLI to deploy
> your app, you can just specify --dropandcreatetables=true on the asadmin
persistence.xml has:

<property name="toplink.ddl-generation" value="create-tables"/>

And I'd like to the deployment from NetBeans, not CLI.

What else ?

-Arun
> deploy. Otherwise, you'd need to set the provider-specific properties in
> the persistence.xml file.
>
> HTH,
> -marina
>
> Arun Gupta wrote:
>> Cool! Changing my code to:
>>
>> -- cut here --
>> @PersistenceUnit(unitName="JavaLibrary1PU")
>> private EntityManagerFactory emf;
>>
>> EntityManager em = emf.createEntityManager();
>> // em.getTransaction().begin();
>> Company c = new Company("1", "AAA Co", (float)10.0,
>> (float)2.0, (float)10.0, "Jun 15, 2007");
>> em.persist(c);
>> out.println("Persisting to the source ...");
>> // em.getTransaction().commit();
>> out.println("and now committed!");
>> -- cut here --
>>
>> got away with that error and my web page now shows
>>
>> "Persisting to the source ... and now committed!"
>>
>> But I do not see the Table in the database URL identified in
>> persistence.xml. What could be wrong ?
>>
>> -Arun
>>
>> Marina Vatkina wrote:
>>
>>> Arun,
>>>
>>> The exceptions are right - you can't mix and match the access types.
>>> You need to either inject an EMF via @PersistenceUnit, and then
>>> create an EM or use UserTransaction for the transaction boundaries.
>>>
>>> regards,
>>> -marina
>>>
>>> Arun Gupta wrote:
>>>
>>>> Ok, I figured out how to set the transaction type (manually edit
>>>> persistence.xml). But now I'm getting:
>>>>
>>>> -- cut here --
>>>> Exception Description: Cannot use an EntityTransaction while using JTA.
>>>> at
>>>> oracle.toplink.essentials.internal.ejb.cmp3.transaction.JTATransactionWrapper.getTransaction(JTATransactionWrapper.java:66)
>>>>
>>>> at
>>>> oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.getTransaction(EntityManagerImpl.java:340)
>>>>
>>>> at
>>>> com.sun.enterprise.util.EntityManagerWrapper.getTransaction(EntityManagerWrapper.java:1094)
>>>>
>>>> -- cut here --
>>>>
>>>> Here is my code for a WebApplication:
>>>> -- cut here --
>>>> @PersistenceContext(unitName="JavaLibrary1PU")
>>>> EntityManager em;
>>>> em.getTransaction();
>>>> Company c = new Company("1", "AAA Co", (float)10.0,
>>>> (float)2.0, (float)10.0, "Jun 15, 2007");
>>>> em.persist(c);
>>>> out.println("Persisting to the source ...");
>>>> em.getTransaction().commit();
>>>> out.println("and now committed!");
>>>> -- cut here --
>>>>
>>>> What is missing ?
>>>>
>>>> -Arun
>>>>
>>>> Arun Gupta wrote:
>>>>
>>>>> Here is a great error message I see when deploying an error:
>>>>>
>>>>> -- cut here --
>>>>> Deploying application in domain failed; Deployment Error -- The
>>>>> persistence-context-ref-name [sample.NewServlet/em] in module
>>>>> [C:\Users\Arun Gupta\WebApplication5\build\web] resolves to a
>>>>> persistence unit called [JavaLibrary1PU] which is of type
>>>>> RESOURCE_LOCAL. Only persistence units with transaction type JTA
>>>>> can be used as a container managed entity manager. Please verify
>>>>> your application.
>>>>> -- cut here --
>>>>>
>>>>> Little detailed but very clearly conveys what is possibly wrong in
>>>>> the application. Now how do I fix it when generating this PU in NB ?
>>>>>
>>>>> -Arun
>>>>
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>

-- 
Technology Evangelist
Web Technologies and Standards
Sun Microsystems, Inc.
Blog: http://blogs.sun.com/arungupta