我试图使用称为ObjectDB的JPA实现。 我已经下载了ObjectDB的jar文件,并将它们包含在我的Eclipse项目中。这是两个阶级:JPA ObjectDB:编译并使用它
package tutorial;
import java.io.Serializable;
import javax.persistence.*;
@Entity
public class Point implements Serializable {
private static final long serialVersionUID = 1L;
@Id @GeneratedValue
private long id;
private int x;
private int y;
public Point() {
}
Point(int x, int y) {
this.x = x;
this.y = y;
}
public Long getId() {
return id;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
@Override
public String toString() {
return String.format("(%d, %d)", this.x, this.y);
}
}
,这是公司主营:
package tutorial;
import javax.persistence.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
// Open a database connection
// (create a new database if it doesn't exist yet):
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("$objectdb/db/points.odb");
EntityManager em = emf.createEntityManager();
// Store 1000 Point objects in the database:
em.getTransaction().begin();
for (int i = 0; i < 1000; i++) {
Point p = new Point(i, i);
em.persist(p);
}
em.getTransaction().commit();
// Find the number of Point objects in the database:
Query q1 = em.createQuery("SELECT COUNT(p) FROM Point p");
System.out.println("Total Points: " + q1.getSingleResult());
// Find the average X value:
Query q2 = em.createQuery("SELECT AVG(p.x) FROM Point p");
System.out.println("Average X: " + q2.getSingleResult());
// Retrieve all the Point objects from the database:
TypedQuery<Point> query =
em.createQuery("SELECT p FROM Point p", Point.class);
List<Point> results = query.getResultList();
for (Point p : results) {
System.out.println(p);
}
// Close the database connection:
em.close();
emf.close();
}
}
这个小程序只有这样做,从Eclipse的工作原理: 运行方式 - > Java应用程序
如果我尝试编译它,我得到:
error: cannot find symbol
EntityManagerFactory emf =
symbol: class EntityManagerFactory
location: class Main
等等所有其他类。 这很奇怪,因为我已将External Jar包含到我的项目中,包含ObjectDb的可执行文件的jar文件... 我可以解决这个问题吗?
ehm ...它应该怎么做?谢谢 – user1576208 2013-05-07 11:40:41
从http://sourceforge.net/projects/hibernate/files/hibernate4/4.2.1.Final/hibernate-release-4.2.1.Final.zip/download下载hibernate orm librarys(hibernate是一个jpa提供者)然后将jar添加到日食中。 – 2013-05-07 11:53:01
我已经将jar添加到Eclipse,但问题是我无法从shell(javac Main.java)编译,因为它说java.persistence不存在......但是我已经从eclipse添加了 – user1576208 2013-05-07 11:55:06