Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > jpa/hibernate, проблема с подключением к Firebird


Автор: anti_snayper 5.3.2010, 14:46
Второй день вымораживает: никак не могу подключиться к firebird через jpa/hibernate
Через jdbc с этими данными параметрами подключаюсь без проблем. 

persistense.xml:
Выделить всёРазметка XML
Код

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
    <persistence-unit name="com.rvl.hibernate" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>com.rvl.entity.Faculty</class>
        <properties>
            <property name="hibernate.connection.driver_class" value="org.firebirdsql.jdbc.FBDriver" />
            <property name="hibernate.connection.username" value="sysdba" />
            <property name="hibernate.connection.password" value="masterkey" />
            <property name="hibernate.connection.url"
                value="jdbc:firebirdsql://localhost:3050/c:/db/ltr_db.fdb" />
            <property name="hibernate.connection.dialect" value="org.hibernate.dialect.FirebirdDialect" />
            <property name="hibernate.show_sql" value="false" />
            <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider" />
            <property name="hibernate.hbm2ddl.auto" value="create-drop" />
        </properties>
    </persistence-unit>
</persistence>
    

HibernateUtil.java
Код

public class HibernateUtil {
    private static EntityManagerFactory factory = null;
    private static EntityManager getNewEntityManager() {
    if (factory == null) {
        factory = Persistence.createEntityManagerFactory("com.rvl.hibernate");
    }
    return factory.createEntityManager();
    }        
    protected EntityManager manager = null;
    public HibernateUtil() {
    manager = HibernateUtil.getNewEntityManager();
    }  
}


Entity:
Код

@Entity
@Table(name = "FACULTY")
public class Faculty implements Serializable{
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue( strategy = GenerationType.AUTO)
    @Column(name = "ID")
    long id;
    
    @Column(name = "FACULTY_ABBR")
    String facultyABBR;
    
    @Column(name = "FACULTY_TITLE")
    String facultyTitle;
    
    @Column(name = "IS_ARCHIVED")
    boolean isArchived = false;
    
    public Faculty() {}
    public Faculty(String facultyABBR, String facultyTitle , boolean isArchived) {
        this.facultyABBR = facultyABBR;
        this.facultyTitle = facultyTitle;
        this.isArchived = isArchived;
    }
    //getters/setters
}
    


При попытке получить EntityManagerFactory:
 EntityManagerFactory factory = Persistence.createEntityManagerFactory("com.rvl.hibernate");

вылетает:

javax.persistence.PersistenceException: No Persistence provider for EntityManager named com.rvl.hibernate
    javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:56)
    javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
    com.rvl.hibernate.HibernateUtil.getNewEntityManager(HibernateUtil.java:19)
    com.rvl.hibernate.HibernateUtil.<init>(HibernateUtil.java:27)


Заранее спасибо.

Автор: jk1 5.3.2010, 22:57
Есть ли в вашем CLASSPATH hibernate-entitymanager.jar?

Автор: anti_snayper 6.3.2010, 00:34
Разобрался сам. Проблем было 2:
во-первых, тупо опечатался  - persistRnce.xml,
во-вторых, видимо в разных версиях диалект для hibernate задается по разному.
Пока не поменял на 
Код

<property name="hibernate.dialect" value="org.hibernate.dialect.FirebirdDialect" />

не заработало.

Всем спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)