에서 엔티티 매핑을 읽지 않습니다 세션 공장이 내 hibernate.cfg입니다 :최대 절전 모드 : hibernate.cfg.xml로
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Connessione al database -->
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="connection.url">
jdbc:oracle:thin:@localhost:1521:xe
</property>
<!-- Credenziali -->
<property name="hibernate.connection.username">Test</property>
<property name="connection.password">Test</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">
org.hibernate.dialect.Oracle10gDialect</property>
<!-- DISABILITA AUTO COMMIT -->
<property name="hibernate.connection.autocommit">true</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">
org.hibernate.cache.NoCacheProvider</property>
<property name="show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">validate</property>
<!-- Entity -->
<mapping class= "it.test.Tbl1"></mapping>
<mapping class= "it.test.Tbl2"></mapping>
<mapping class= "it.test.Tbl3"></mapping>
<mapping class= "it.test.Tbl4"></mapping>
</session-factory>
</hibernate-configuration>
이 최대 절전 모드 UTIL 파일 :
내가 실행하려고 간단한 쿼리, 나는 "쿼리 예외 : 테이블이 매핑되지 않았습니다"예외가 발생했습니다. 하지만, 다음과 같이 util을 최대 절전 모드를 변경하는 경우
public class HibernateUtil {
private static SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
private static SessionFactory createSessionFactory() {
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
return sessionFactory;
}
public static SessionFactory getSessionFactory() {
if (sessionFactory == null)
sessionFactory = createSessionFactory();
return sessionFactory;
}
}
프로그램이 성공을 작동합니다. 세션 팩토리가 구성 파일을 통해로드되지 않는 이유는 무엇입니까?
콘솔 로그 :
10:54:44.989 [main] DEBUG org.hibernate.hql.internal.ast.ErrorCounte-
throwQueryException() : no errors
10:54:45.130 [main] DEBUG
org.hibernate.hql.internal.antlr.HqlSqlBaseWalker - select << begin
[level=1, statement=select]
org.hibernate.hql.internal.ast.QuerySyntaxException: Tbl1 is not mapped
[from Tbl1 eat where eat.activityId = :id]
at
org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException
(QuerySyntaxException.java:79)
at org.hibernate.QueryException.wrapWithQueryString
(QueryException.java:103)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile
(QueryTranslatorImpl.java:218)
내가 문제가이 있다고 생각 :
17:14:47.130 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry -
Registering SessionFactory: a0044811-5a9f-483a-8ede-b136c9781bb3
(<unnamed>)
17:14:47.130 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry -
Not binding SessionFactory to JNDI, no JNDI name configured
17:14:47.364 [main] DEBUG org.hibernate.stat.internal.StatisticsInitiator
- Statistics initialized [enabled=false]
당신이 나를 도울 수 있습니까 ??
: "sessionFactory = configuration.addAnnotatedClass (Tbl1.class) .addAnnotatedClass (Tbl2.class) .addAnnotatedClass (Tbl3.class) .addAnnotatedClass (Tbl4.class) .buildSessionFactory (serviceRegistry);를 추가하면 프로그램이 제대로 작동합니다. " 하지만 세션 팩토리가 hibernate.cfg.xml에서 매핑 클래스를 읽길 바랍니다. 나는 paser가 hibernate.cfg.xml에서 태그 매핑을 읽지 않는다고 생각한다. – fegrieco
'hibernate.connection.username' 대신'connection.username'을 시도해보십시오. – SachinSarawgi
또한 당신의'hibernate.cfg.xml' 파일에 그것들은 닫는 태그' hibernate-configuration> '이 없습니다 – SachinSarawgi