cancel
Showing results for 
Search instead for 
Did you mean: 

JPA error: "0 persistence units are found."

patrik_spiess
Participant
0 Kudos

Hello,

I am developing persistance in the system database MaxDB on NWDI 7.1 SP5 with NWDS. I get the following error in Developer Studio:

"0 persistence units are found. Only exactly one persistence unit is supported."

Anybody seen this problem before and knows what it means and how to solve it?

Cheers,

Patrik

Accepted Solutions (1)

Accepted Solutions (1)

Vlado
Advisor
Advisor
0 Kudos

Guess you have an empty persistence.xml, i.e. one that does not define any persistence unit. If you add one the error should disappear.

HTH!

\-- Vladimir

patrik_spiess
Participant
0 Kudos

Here is my current persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
	<persistence-unit name="impl_ejb">
		<jta-data-source>SII_DB_ALIAS</jta-data-source>
	</persistence-unit>
</persistence>

Vlado
Advisor
Advisor
0 Kudos

Hmm... that looks fine.

Where exactly do you see this error? Does it point to some resource in your workspace? Line number or something?

patrik_spiess
Participant
0 Kudos

Unfortunately, the location is "Unknown". The following error can be found in the PDE runtime error log:

Message: An error occurred while traversing resources.


java.lang.ClassCastException: org.eclipse.jdt.core.dom.QualifiedName
at org.eclipse.jpt.core.internal.jdtutility.EnumArrayDeclarationAnnotationElementAdapter.resolve(EnumArrayDeclarationAnnotationElementAdapter.java:91)
at org.eclipse.jpt.core.internal.jdtutility.EnumArrayDeclarationAnnotationElementAdapter.getValue(EnumArrayDeclarationAnnotationElementAdapter.java:66)
at org.eclipse.jpt.core.internal.jdtutility.EnumArrayDeclarationAnnotationElementAdapter.getValue(EnumArrayDeclarationAnnotationElementAdapter.java:1)
at org.eclipse.jpt.core.internal.jdtutility.MemberAnnotationElementAdapter.getValue(MemberAnnotationElementAdapter.java:43)
at org.eclipse.jpt.core.internal.jdtutility.ShortCircuitAnnotationElementAdapter.getValue(ShortCircuitAnnotationElementAdapter.java:47)
at org.eclipse.jpt.core.internal.content.java.mappings.JavaCascade.updateFromJava(JavaCascade.java:574)
at org.eclipse.jpt.core.internal.content.java.mappings.JavaRelationshipMapping.updateFromJava(JavaRelationshipMapping.java:567)
at org.eclipse.jpt.core.internal.content.java.mappings.JavaSingleRelationshipMapping.updateFromJava(JavaSingleRelationshipMapping.java:592)
at org.eclipse.jpt.core.internal.content.java.mappings.JavaOneToOne.updateFromJava(JavaOneToOne.java:304)
at org.eclipse.jpt.core.internal.content.java.mappings.JavaAttributeMapping.initialize(JavaAttributeMapping.java:80)
at org.eclipse.jpt.core.internal.content.java.JavaPersistentAttribute.updateFromJava(JavaPersistentAttribute.java:564)
at org.eclipse.jpt.core.internal.content.java.JavaPersistentType.updatePersistentFields(JavaPersistentType.java:694)
at org.eclipse.jpt.core.internal.content.java.JavaPersistentType.updatePersistentAttributes(JavaPersistentType.java:677)
at org.eclipse.jpt.core.internal.content.java.JavaPersistentType.updateFromJava(JavaPersistentType.java:671)
at org.eclipse.jpt.core.internal.content.java.JpaCompilationUnit.synchronizePersistentTypes(JpaCompilationUnit.java:406)
at org.eclipse.jpt.core.internal.content.java.JpaCompilationUnit.setFile(JpaCompilationUnit.java:325)
at org.eclipse.jpt.core.internal.content.java.JavaJpaFileContentProvider.buildRootContent(JavaJpaFileContentProvider.java:30)
at org.eclipse.jpt.core.internal.JpaFileContentRegistry.buildContent(JpaFileContentRegistry.java:60)
at org.eclipse.jpt.core.internal.JpaFileContentRegistry.getFile(JpaFileContentRegistry.java:44)
at org.eclipse.jpt.core.internal.JpaProject.createJpaFile(JpaProject.java:630)
at org.eclipse.jpt.core.internal.JpaProject$3.visit(JpaProject.java:497)
at org.eclipse.core.internal.resources.Resource$1.visitElement(Resource.java:57)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:81)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:126)
at org.eclipse.core.internal.resources.Resource.accept(Resource.java:67)
at org.eclipse.jpt.core.internal.JpaProject.fill(JpaProject.java:504)
at org.eclipse.jpt.core.internal.JpaModelManager.fillJpaProject(JpaModelManager.java:180)
at org.eclipse.jpt.core.internal.JpaModel$1.visit(JpaModel.java:152)
at org.eclipse.core.internal.resources.Resource$1.visitElement(Resource.java:57)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:81)
at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:119)
at org.eclipse.core.internal.resources.Resource.accept(Resource.java:67)
at org.eclipse.jpt.core.internal.JpaModel.fill(JpaModel.java:158)
at org.eclipse.jpt.core.internal.JpaModelManager$WorkspaceBuildJob$1.run(JpaModelManager.java:260)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1797)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1779)
at org.eclipse.jpt.core.internal.JpaModelManager$WorkspaceBuildJob.run(JpaModelManager.java:257)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

Answers (2)

Answers (2)

patrik_spiess
Participant
0 Kudos

The problem was solved by Vladimir after taking a deep look into my entity code.

The reason was that I had defined the "cascade" attribute of some relationships. What I failed to recognize is that the this attribute expects an array of cascade type constants, not a single constant:

wrong: @OneToOne(cascade = CascadeType.ALL)

right: @OneToOne(cascade = {CascadeType.ALL)}

This caused the JPA tools in DevStudio to crash.

Obvious, isn't it?

Former Member
0 Kudos

As obvious as many other errors in NW. Thanks for posting the solution

Funnily the wrong worked until i accidently killed my dictionary connection. After adding the connection again, the problem arose.

Former Member
0 Kudos

Have you got a Dictionary assigned in your JPA project settings?