gpt4 book ai didi

java - hibernate中查询语法异常

转载 作者:行者123 更新时间:2023-12-01 11:29:03 25 4
gpt4 key购买 nike

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

测试.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());
}
}
}
}

我正在尝试使用 hibernate 映射现有数据库,但出现此异常,请帮助。

Exception in thread "main" org.hibernate.hql.ast.QuerySyntaxException: MisRecords is not mapped [from MisRecords]

最佳答案

您似乎忘记在 hibernate 配置中为您的MisRecords添加映射。

变体 a) hibernate.cfg.xml 带有单独的映射文件:

如果您已通过 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>

变体 b) 使用 JPA 的 Spring ORM

如果您正在运行 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;
}

...

}

干杯,ceth

关于java - hibernate中查询语法异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30571971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com