dev@glassfish.java.net

Re: PU with TX Type JTA

From: Lance J. Andersen <Lance.Andersen_at_Sun.COM>
Date: Sat, 16 Jun 2007 06:46:00 -0400

Hi Arun,

There are a bunch of blogs similar to what u are suggesting already and
a few good articles on netbeans.org.

download the app from the blog on java.net i just put together on JPA,
netbeans and webstart, perhaps that will help answer some of your questions

Regards
Lance

Arun Gupta wrote:
> 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
>>
>