You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by ebaxt <eb...@broadpark.no> on 2008/03/28 10:08:13 UTC
Toplink+openEJB = TransactionRequiredException
Hi.
I'm using embedded openEJB to test some Session Beans during my build. The
project I'm working on uses toplink JPA provider, so I want to use topLink
with openEJB.
Problem:
I want to add a new Taxon:
@Entity
@Table(name = "TAXA")
public class Taxa implements Serializable, Comparable<Taxa> {
private static final long serialVersionUID = 1L;
@TableGenerator(
name = "Taxa_Gen",
table = "ID_GEN",
pkColumnName = "GENERATOR_NAME",
valueColumnName = "GENERATOR_VALUE",
pkColumnValue = "Taxa_Gen")
@Id
@GeneratedValue(strategy=GenerationType.TABLE, generator="Taxa_Gen")
@Column(name = "RECORD_ID", nullable = false)
.
.
}
My unitTest basicly calls a Session Facade, the facade delegates the
em.persist(..) to an EAO (DAO):
public class Sp2kServiceBean implements Sp2kService {
@EJB
TaxaEAO taxaEAO;
@Override
public Taxa createTaxa(Long parentId, String name) {
... //Creates new Taxa
taxaEAO.create(newTaxa);
.
.
}
TaxaEAOBean looks like this:
@Stateless
public class TaxaEAOBean implements TaxaEAO {
@PersistenceContext(name="sp2k")
private EntityManager em;
@Override
public void create(Taxa taxa) {
em.persist(taxa);
/em.flush();
}
.
.
}
The problem started when I tried to add GenerationType.TABLE, the test ran
without error, but the Taxon was not added to the DB. So i tried em.flush()
in TaxaEAOBean, which resulted in the following error:
The transaction has been marked rollback only because the bean encountered a
non-application exception :javax.persistence.TransactionRequiredException :
Exception Description: No transaction is currently active
Any ideas?
Does the use of toplink with openEJB need any more configuration than
changing the provider in persistence.xml?
I also tried it with openJPA, but it doesn't seem to use the table generated
primary key.
--
View this message in context: http://www.nabble.com/Toplink%2BopenEJB-%3D-TransactionRequiredException-tp16348298p16348298.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.
Re: Toplink+openEJB = TransactionRequiredException
Posted by David Blevins <da...@visi.com>.
Hi Erik,
I think my answer to your question on the users@openejb list covers
this question as well. Let me know if that doesn't do the trick.
-David
On Mar 28, 2008, at 2:08 AM, ebaxt wrote:
>
> Hi.
>
> I'm using embedded openEJB to test some Session Beans during my
> build. The
> project I'm working on uses toplink JPA provider, so I want to use
> topLink
> with openEJB.
>
> Problem:
> I want to add a new Taxon:
>
> @Entity
> @Table(name = "TAXA")
> public class Taxa implements Serializable, Comparable<Taxa> {
> private static final long serialVersionUID = 1L;
> @TableGenerator(
> name = "Taxa_Gen",
> table = "ID_GEN",
> pkColumnName = "GENERATOR_NAME",
> valueColumnName = "GENERATOR_VALUE",
> pkColumnValue = "Taxa_Gen")
> @Id
> @GeneratedValue(strategy=GenerationType.TABLE,
> generator="Taxa_Gen")
> @Column(name = "RECORD_ID", nullable = false)
> .
> .
> }
>
> My unitTest basicly calls a Session Facade, the facade delegates the
> em.persist(..) to an EAO (DAO):
>
> public class Sp2kServiceBean implements Sp2kService {
>
> @EJB
> TaxaEAO taxaEAO;
>
> @Override
> public Taxa createTaxa(Long parentId, String name) {
> ... //Creates new Taxa
> taxaEAO.create(newTaxa);
> .
> .
> }
>
> TaxaEAOBean looks like this:
>
> @Stateless
> public class TaxaEAOBean implements TaxaEAO {
>
> @PersistenceContext(name="sp2k")
> private EntityManager em;
>
> @Override
> public void create(Taxa taxa) {
> em.persist(taxa);
> /em.flush();
> }
> .
> .
> }
>
> The problem started when I tried to add GenerationType.TABLE, the
> test ran
> without error, but the Taxon was not added to the DB. So i tried
> em.flush()
> in TaxaEAOBean, which resulted in the following error:
>
> The transaction has been marked rollback only because the bean
> encountered a
> non-application
> exception :javax.persistence.TransactionRequiredException :
> Exception Description: No transaction is currently active
>
> Any ideas?
> Does the use of toplink with openEJB need any more configuration than
> changing the provider in persistence.xml?
>
> I also tried it with openJPA, but it doesn't seem to use the table
> generated
> primary key.
> --
> View this message in context: http://www.nabble.com/Toplink%2BopenEJB-%3D-TransactionRequiredException-tp16348298p16348298.html
> Sent from the OpenEJB Dev mailing list archive at Nabble.com.
>
>