Таблица содержит аннотации, но не отображается в Hibernate - PullRequest
0 голосов
/ 19 мая 2018

таблица не сопоставлена ​​[[из таблицы]] с таблицей первопричин, нет сопоставленной ошибки

с com.springboot.pojos.Hero в src / main / java

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

@Entity
@Table(name="HEROES")
public class Hero

Это из моего hibernate.cfg.xml в src / main / resources

<?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>
    <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
    <property name="hibernate.connection.password">password</property>
    <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
    <property name="hibernate.connection.username">username</property>
    <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
   <property name="hibernate.show_sql">true</property> 
    <mapping class="com.springboot.pojos.Hero"/>
    <mapping class="com.springboot.pojos.Abilities"/>

</session-factory>
</hibernate-configuration>

Я используюпружинный башмак

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.2.RELEASE</version>
</parent>

<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        </dependency>
</dependencies>

ОБНОВЛЕНИЯ ===============================

2018-05-18 21:44:59.817  INFO 2992 --- [o-auto-1-exec-1]     o.h.h.i.QueryTranslatorFactoryInitiator  : HHH000397: Using ASTQueryTranslatorFactory
2018-05-18 21:45:00.399 ERROR 2992 --- [o-auto-1-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: Hero is not mapped [FROM Hero]] with root cause

org.hibernate.hql.internal.ast.QuerySyntaxException: Hero is not mapped

Запрос, выдающий ошибку

 String hql = "FROM Hero";
 Query query = currSession.createQuery(hql);

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

Если вы используете загрузку sprint, вам нужно настроить источник данных и сообщить spirng boot с помощью @EnableJpaRepositories, ведь это пакет, содержащий сущности.

В вашем application.property вы должны установить переменную источника данныхhttps://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(entityManagerFactoryRef = "entityManagerFactory", basePackages = {
        "com.getsoft.invapp.repositoty" })
//@PropertySource("classpath:application.properties")
public class PersistenceJPAConfig {

    @Autowired
    private Environment env;

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
        LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
        em.setDataSource(dataSource());
        em.setPackagesToScan(new String[] { "com.getsoft.invapp.entity" });

        JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        em.setJpaVendorAdapter(vendorAdapter);
        em.setJpaProperties(additionalProperties());

        return em;
    }

    @Bean(name = "dataSource")
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {

        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
        dataSource.setUrl(env.getProperty("spring.datasource.url"));
        dataSource.setUsername(env.getProperty("spring.datasource.username"));
        dataSource.setPassword(env.getProperty("spring.datasource.password"));
        return dataSource;

    }
0 голосов
/ 19 мая 2018

Да, используя аннотации Hibernate, вы можете отобразить сущность в таблицу, как показано выше.Не нужно настраивать любые другие файлы.Пожалуйста, предоставьте больше информации о проблеме, с которой вы столкнулись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...