Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7967807
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 4, 20262026-06-04T06:58:48+00:00 2026-06-04T06:58:48+00:00

I’m using eclipse JPA project to create entities in Apache Derby. I’m using the

  • 0

I’m using eclipse JPA project to create entities in Apache Derby. I’m using the JPA Tools:

"generate tables from entities.." 

command. When I use this command, the tables are put into the database. I can see the tables, and that they have columns from the Eclipse “Data Source Explorer”. When I log in to Derby through ij.

I type:

'show tables in schema x';

I get a list of the table names that correspond to the entities.
I type:

'select * from <table in x>'

I get:

ERROR 42X05: Table/View 'ADDRESS' does not exist.

Why do my tables not stick..? When I use the CREATE TABLE commands that are being entered in during use of the “generate tables from entities..” command, they produce tables there. When I type ‘select * ..” I get a table.

Second, probably related problem. I have a class. I use the following commands to obtain an entity manager:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("DataModelAccess");

EntityManager em = emf.createEntityManager();

If I run a test on my entities, such as this:

public void runTest()
{
    EntityManagerFactory emf =
        Persistence.createEntityManagerFactory("DataModelAccess");

    EntityManager em = emf.createEntityManager();

    System.out.println(emf == null);

    Address address = new Address();
    address.setAddressID("1");
    address.setAddressNumber(1746);
    address.setStreetName("Howard");
    address.setStreetType("Court");
    address.setCity("Lennyville");
    address.setState("CT");
    address.setZipcode(73625);
    em.persist(address);
    em.close();
    emf.close();

    // reassign:
    emf = Persistence.createEntityManagerFactory("DataModelAccess");
    em = emf.createEntityManager();

    Address address2 = em.find(Address.class, "1");
    System.out.println(address2.getCity());

I get a NullPointerException on the last line.

If I do not re-assign to emf and em, It will print the city to the console.

So,

1. Why do tables not appear for SELECT * FROM <TABLE_NAME>?
    
But do appear for SHOW TABLES IN <SCHEMA>?

2. Why is my data not persistent across sessions?

I’m running this in Eclipse, from a plain old Java SE object. There is no Java EE container. It’s an Eclipse JPA project. There is a persistence.xml file. There is a connection called ‘derby’ that is managed by eclipse. Maybe I have a persistence.xml file problem? Maybe this is a common problem for everyone. Maybe JPA and eclipselink do this by default because of some differing access protocol? Maybe not having a Java EE Container is making it difficult?

========

As requested:
the address class is totally irrelevant. I’ve tried both field and property based access also. It makes no difference to IJ. Both attempts fail equally well. This is a summary:

@Entity 
@Table(name="ADDRESS") 
public class Address 
implements Serializable

...

@Id 
public String getAddressID()

every thing else is fields, constructor, getters and setters. No annotations. I just added a new JPA entity by right-clicking on my package and selecting

New --> JPA Entity 

I put the fields in it using the eclipse wizard. I made it property-based. I thought maybe field-based access would change things, so I tried field-based, but it made no difference.

where you see this: address.setStreetName(“Howard”);
there is the field:

private String streetName; 

and two corresponding methods

setStreetName(String x); 

and

String getStreetName(); 

The same formula exists for all fields in the class. Each field has a getter and a setter. There are no more methods than the getters and the setters. 1 field per each getter/setter method pair. There are no more annotations than I mentioned.

Just for information: I do not set all of the properties for the Address class. The fields in the table were all entered into the database as NULLABLE. Yet, IJ does not find any TABLE. – user1405870 11 hours ago

=========

Here’s the Address and Address_ classes:

package dataAccess.customer;

import javax.annotation.Generated;
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;

@Generated(value="Dali", date="2012-05-18T21:44:02.229-0500")
@StaticMetamodel(Address.class)
public class Address_ 
{
    public static volatile SingularAttribute<Address, String> addressID;
    public static volatile SingularAttribute<Address, Integer> addressNumber;
    public static volatile SingularAttribute<Address, String> streetName;
    public static volatile SingularAttribute<Address, String> streetType;
    public static volatile SingularAttribute<Address, String> building;
    public static volatile SingularAttribute<Address, String> floor;
    public static volatile SingularAttribute<Address, String> unit;
    public static volatile SingularAttribute<Address, String> landmarkName;
    public static volatile SingularAttribute<Address, String> city;
    public static volatile SingularAttribute<Address, String> state;
    public static volatile SingularAttribute<Address, Integer> zipcode;
}

package dataAccess.customer;


import java.io.Serializable;
import java.lang.Integer;
import java.lang.String;
import javax.persistence.*;


/**
 * Entity implementation class for Entity: Address
 * 
 */
@Entity
@Table(name="ADDRESS")
public class Address
implements Serializable
{

    private String addressID;

    private Integer addressNumber;

    private String streetName;

    private String streetType;

    private String building;

    private String floor;

    private String unit;

    private String landmarkName;

    private String city;

    private String state;

    private Integer zipcode;

    private static final long serialVersionUID = 1L;


    public Address()
    {

    }

    @Id
    public String getAddressID()
    {
        return addressID;
    }

    public void setAddressID(String addressID)
    {
        this.addressID = addressID;
    }

    public Integer getAddressNumber()
    {
        return this.addressNumber;
    }

    public void setAddressNumber(Integer addressNumber)
    {
        this.addressNumber = addressNumber;
    }

    public String getStreetName()
    {
        return this.streetName;
    }

    public void setStreetName(String streetName)
    {
        this.streetName = streetName;
    }

    public String getStreetType()
    {
        return this.streetType;
    }

    public void setStreetType(String streetType)
    {
        this.streetType = streetType;
    }

    public String getBuilding()
    {
        return this.building;
    }

    public void setBuilding(String building)
    {
        this.building = building;
    }

    public String getFloor()
    {
        return this.floor;
    }

    public void setFloor(String floor)
    {
        this.floor = floor;
    }

    public String getUnit()
    {
        return this.unit;
    }

    public void setUnit(String unit)
    {
        this.unit = unit;
    }

    public String getLandmarkName()
    {
        return this.landmarkName;
    }

    public void setLandmarkName(String landmarkName)
    {
        this.landmarkName = landmarkName;
    }

    public String getCity()
    {
        return this.city;
    }

    public void setCity(String city)
    {
        this.city = city;
    }

    public String getState()
    {
        return this.state;
    }

    public void setState(String state)
    {
        this.state = state;
    }

    public Integer getZipcode()
    {
        return this.zipcode;
    }

    public void setZipcode(Integer zipcode)
    {
        this.zipcode = zipcode;
    }

}

Here’s the persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
    <persistence-unit name="DataModelAccess" transaction-type="RESOURCE_LOCAL">
        <class>dataAccess.customer.Person</class>
        <class>dataAccess.customer.Address</class>
        <class>dataAccess.customer.PhoneNumber</class>
        <class>dataAccess.customer.Customer</class>
        <class>dataAccess.customer.TwoFieldTest</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <properties>
            <property name="eclipselink.ddl-generation.output-mode" value="database"></property>
            <property name="eclipselink.target-database" value="derby"/>
            <property name="eclipselink.target-server" value="None"/>
            <property name="eclipselink.exclude-eclipselink-orm" value="true"/>
            <property name="eclipselink.jdbc.batch-writing" value="JDBC"/>
            <property name="eclipselink.jdbc.cache-statements" value="true"/>
            <property name="eclipselink.jdbc.native-sql" value="true"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/sample;create=true"/>
            <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
            <property name="eclipselink.jdbc.bind-parameters" value="false"/>
            <property name="eclipselink.jdbc.exclusive-connection.mode" value="Transactional"/>
            <property name="eclipselink.orm.validate.schema" value="true"/>
            <property name="eclipselink.orm.throw.exceptions" value="true"/>
            <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
        </properties>
    </persistence-unit>
</persistence>

Comments:
calling

em.flush(); 

is exactly what I did, in order to check if the data was persisting across sessions (which it does not). In other words, when I run the method “runTest()” I get the correct print statements, under the original runTest() method. I have posted the altered “runTest()” method (see the: //reassign “comment”). Now, when I have a customer, which I build out of three entities: address, phoneNumber, and, person, the customer can instantiated through finding the other three entities “in the database”, with the entity manager. However, if I comment out everything, except for the code that looks up the three entities in the database and creates a new customer, then I find that I cannot get the data out of the database.

that looks like this:

    Customer c = new Customer();
    c.setAddress(em.find(Address.class, "1"));
    c.setPhoneNumber(em.find(PhoneNumber.class, "1"));
    c.setName(em.find(Person.class, "1"));
    c.setCustomerID("123");
    em.persist(c);
    */
    Customer actual = em.find(Customer.class, "123");

and when I comment out everything until after em.persist(c), I do not get any Customer actual.

normally, I get this:

Customer: 
Name: 
Mr. Howard T Stewart III

Address: 
1746 Howard Court
Lennyville, CT 73625

Phone: 
(215) 256-4563

But when I comment out everything until

Customer actual = em.find(Customer.class, "123"); 

(now.. I instantiated the em in a previous line, but I did not now create person, phone_number, or address.)

Then, .. I get,

(actual == null) 

evaluates to true.

Am I misusing the “find()” command? Am I supposed to do something else to load a current connection to the database or something (in terms of commands through em (em.method())?

Remember that there is no Java EE container here. I’m just doing this in eclipse, running main methods in j2se programs, in a JPA project in eclipse, using eclipselink 2.3. But this is not EJB, nor is it ManagedBeans or etc.

So..

I found this:

@Resource
UserTransaction utx;
...
try {
utx.begin();
bookDBAO.buyBooks(cart);
utx.commit();
} catch (Exception ex) {
try {
utx.rollback();
} catch (Exception exe) {
System.out.println("Rollback failed: "+exe.getMessage());
}
...

Unfortunately, I didn’t find anything about UserTransaction until I got to the Web portion of the java ee tutorial, so, as such, I was unable to find the sentence that said “user transaction” amidst all the implication that em.persist() is all that it takes. Also, @Resource might not work outside of a Java EE Container.


Daniel: thank you for the comment, it gave me the answer that I needed.

Even though I had found the above items, and although I was doing this:

em.getTransaction().begin();

// .. set fields of address .. 
em.persist(address);    

em.getTransaction().commit();
em.close();

It still wasn’t working. When I changed the persistence.xml file to only CREATE tables, the test method runs correctly, and, when I comment out everything but retrieve the customer from the database, that returns correctly as well.

I have also tried:

SELECT * FROM <SCHEMA>.ADDRESS;

and that works fine as well. Thank you so much, as finding out what the entity manager is actually doing because of the “DROP AND CREATE TABLES” directive would likely be a very hard thing to track down amongst tutorials.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-04T06:58:49+00:00Added an answer on June 4, 2026 at 6:58 am

    In your persistence.xml you have,

    <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
    

    This means every time you create a new EntityManagerFactory you will recreate your database, loosing all of the data.

    Either remove this, or change it to “create-tables” to only create.

    For your first issue, try ., i.e. x.address

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm new to using the Perl treebuilder module for HTML parsing and can't figure
That's pretty much it. I'm using Nokogiri to scrape a web page what has
link Im having trouble converting the html entites into html characters, (&# 8217;) i
For some reason, after submitting a string like this Jack’s Spindle from a text
I am trying to understand how to use SyndicationItem to display feed which is
I am reading a book about Javascript and jQuery and using one of the
I have a string like this: La Torre Eiffel paragonata all&#8217;Everest What PHP function
I'm using v2.0 of ClassTextile.php, with the following call: $testimonial_text = $textile->TextileRestricted($_POST['testimonial']); ... and
I want use html5's new tag to play a wav file (currently only supported
I have this code to decode numeric html entities to the UTF8 equivalent character.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.