使用EclipseLink时,main()从createEntityManager()抛出异常

时间:2012-03-07 21:04:24

标签: exception eclipselink

我有一个简单的程序,使用JPA实体写入Derby DB(实体是从现有的DB表生成的)。我正在使用Eclipse,并且Derby客户端和服务器之间通过EclipseLink Data Source Explorer实现了可靠的连接。

这是我的main()的开头:

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

public class start {

    /**
     * @param args
     */
    private static final String PERSISTENCE_UNIT_NAME = "zodiac";
    private static EntityManagerFactory factory;

    public static void main(String[] args) {
    try {
        factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
        EntityManager em = factory.createEntityManager();
        System.out.println("after factory gen" );

当执行createEntityManager()行时,抛出以下异常:

[EL Info]:2012-03-07 22:46:21.892 - ServerSession(253038357) - EclipseLink,版本:Eclipse Persistence Services - 2.3.2.v20111125-r10461 [EL Severe]:2012-03-07 22:46:22.064 - ServerSession(253038357) - 异常[EclipseLink-4002](Eclipse Persistence Services - 2.3.2.v20111125-r10461):org.eclipse.persistence.exceptions .DatabaseException 内部异常:java.sql.SQLException:没有合适的驱动程序 错误代码:0

知道问题是什么?感谢

1 个答案:

答案 0 :(得分:0)

如果您在Eclipse中,则需要将驱动程序添加到项目类路径中。听起来你已经拥有了一个数据源,所以你必须定义了驱动程序库。您需要做的就是将“添加库”添加到Java构建路径,然后从可用驱动程序定义的下拉列表中选择“连接驱动程序定义”,然后选择Derby驱动程序。

仅供参考,New JPA Project向导中有一个复选框,您可以在创建新项目时选择“将驱动程序添加到类路径”来执行此操作。

当然,您也可以直接将derbyclient.jar添加到类路径中,或者定义包含它的用户库。

- 肖恩