Posting Sample Code

To demonstrate a technical question or an issue - you may have to provide a complete runnable sample program.

If an unexpected exception (e.g. NullPointerException or ClassCastException) is thrown by ObjectDB - posting the full stack trace with no sample program (using the Issue Tracking system) may be sufficient to locate the problem. In most other cases - a sample program may be required.

Whenever possible:

  • Use a single Java file with one main class + static inner classes for entity / embeddable classes.
  • Avoid dependency on external libraries.
  • Use a console application with a main method (preferred over JUnit).
  • Use embedded mode to connect to the ObjectDB database directly (no persistence unit).
  • Keep the test as simple as possible - remove unnecessary code (but keep it complete and runnable).

You may use the following example as an initial template for your test case:

package test;

import java.util.*;
import javax.persistence.*;

public final class MyTestCase {

    public static void main(String[] args)  {
        EntityManagerFactory emf =
        EntityManager em = emf.createEntityManager();

        MyEntity e = new MyEntity("test");

        Query query = em.createQuery("SELECT e FROM MyEntity e");
        List resultList = query.getResultList();


    public static class MyEntity {
        private String name;
        MyEntity(String name) {
   = name;
        public String toString() {
            return name;

Note: If you are using NetBeans please ignore its strict JPA warnings (There is no ID defined for this entity hierarchy, The class should have a no-arg public or protected constructor, An entity class must be a top level class, The project does not contain a persistence unit, An entity or IdClass class should implement the interface).