[英]Query syntax exception in hibernate
MisRecords.java
@Entity
@Table(name="dat_emprecords")
public class MisRecords {
@Id
@GeneratedValue
@Column(name="pk_EmpRec_Idx")
int id;
@Column(name="EmpRec_EmpFName")
String firstName;
@Column(name="EmpRec_EmpLName")
String lastName;
@Column(name="fk_EmpRec_EmpID")
int empId;
@Column(name="fk_emprec_empreportingmgrid")
int empReportingManagerId;
// setters and getters
Test.java
public class Test {
public static void main(String[] args) {
Session session=new AnnotationConfiguration().configure().buildSessionFactory().openSession();
Query query=session.createQuery("from MisRecords");
List<MisRecords> list=query.list();{
for(MisRecords employee:list){
System.out.println(employee.getFirstName());
}
}
}
}
我正在嘗試使用休眠方式映射現有數據庫,但出現此異常,請幫忙。
線程“主” org.hibernate.hql.ast.QuerySyntaxException中的異常:未映射MisRecords [來自MisRecords]
好像您忘記了在休眠配置中為MisRecords添加映射。
如果您通過hibernate.cfg.xml手動配置了hibernate上下文,則可以在該文件中添加映射,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration SYSTEM
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Default Database Dialect in Hibernate -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Schema -->
<property name="hibernate.default_schema">YOUR_DB_SCHEME</property>
...
<!-- Your mapping for your model goes after -->
<mapping class="coolproject.modelpackage.ModelEntity1"/>
<mapping class="coolproject.modelpackage.ModelEntity2"/>
<mapping class="coolproject.modelpackage.ModelEntity3"/>
<mapping class="coolproject.modelpackage.ModelEntity4"/>
</session-factory>
</hibernate-configuration>
如果您運行的是Spring Web框架上下文,則可以通過在spring持久性配置bean中配置實體管理器工廠來啟用@Entity類的自動掃描:
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.JpaVendorAdapter;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
@EnableTransactionManagement
public class PersistenceJPAConfig {
...
/**
* EntityManager Factory Bean
*
* @return
* {@link LocalContainerEntityManagerFactoryBean}
*/
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
// add base packages containing @Entity annotated classes here
em.setPackagesToScan(new String[] { "packages", "to.scan", "for.Entity.annotated.classes" });
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
em.setJpaProperties(additionalProperties());
return em;
}
...
}
干杯,cet
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.