main () выдает исключение из createEntityManager () при использовании EclipseLink - PullRequest
0 голосов
/ 08 марта 2012

У меня есть простая программа, использующая сущности JPA для записи в БД Derby (сущности были сгенерированы из существующих таблиц БД). Я использую Eclipse, и между клиентом Derby и сервером существует работающее соединение через проводник EclipseLink Data Source.

Вот начало моего 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 голосов
/ 08 марта 2012

Если вы находитесь в Eclipse, вам нужно добавить драйвер в classpath вашего проекта. Похоже, у вас уже есть источник данных, поэтому вы должны были определить библиотеку драйверов. Все, что вам нужно сделать, это «Добавить библиотеку» в ваш путь сборки Java и выбрать «Определение драйвера подключения», а затем драйвер Derby из выпадающего списка доступных определений драйвера.

К вашему сведению, в мастере New JPA Project есть флажок, в котором вы можете выбрать «добавить драйвер в classpath», чтобы сделать это при создании нового проекта.

Конечно, вы также можете добавить derbyclient.jar непосредственно к вашему classpath или определить пользовательскую библиотеку, которая его включает.

- Shaun

...