Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringBootApplication无法从新表获取数据_Java_Mysql_Spring Boot_Hibernate - Fatal编程技术网

Java SpringBootApplication无法从新表获取数据

Java SpringBootApplication无法从新表获取数据,java,mysql,spring-boot,hibernate,Java,Mysql,Spring Boot,Hibernate,我有一个spring引导应用程序,它可以处理所有的旧代码。我添加了一个无法从中获取数据的新表。应用程序的其余部分工作正常。我可以登录并做一些事情,这意味着应用程序连接到数据库,这只是我无法从中获取数据的新表。我正在将代码添加到现有的类中(尽管如果我能让它工作的话,我想把它拉出来) 我手动添加了表。并向其添加了数据。我可以从CLI查询表并返回结果 CREATE TABLE Eop_Information ( id bigint(20) NOT NULL AUTO_INCREMENT,

我有一个spring引导应用程序,它可以处理所有的旧代码。我添加了一个无法从中获取数据的新表。应用程序的其余部分工作正常。我可以登录并做一些事情,这意味着应用程序连接到数据库,这只是我无法从中获取数据的新表。我正在将代码添加到现有的类中(尽管如果我能让它工作的话,我想把它拉出来)

我手动添加了表。并向其添加了数据。我可以从CLI查询表并返回结果

CREATE TABLE Eop_Information (
   id bigint(20) NOT NULL AUTO_INCREMENT,
   employer_als_id varchar(255) NOT NULL,
   sftp_directory varchar(24),
   eop_filename_pattern varchar(16),
   PRIMARY KEY(id),
   FOREIGN KEY (employer_als_id) REFERENCES Employer(employer_als_id)
);
主类

@SpringBootApplication(exclude = {
    HibernateJpaAutoConfiguration.class
})
@EnableScheduling
public class AlsApp extends SpringBootServletInitializer {

   public static void main(String[] args) {
      SpringApplication.run(AlsApp.class, args);
   }

   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
      return builder.sources(AlsApp.class);
   }
}
我的冬眠图

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = "com.als")
@EntityScan(basePackages = "com.als.bo")
public class HibernateConfig {
    private static final Logger log = LoggerFactory.getLogger(HibernateConfig.class);

    @Value("${db.driverClassName}")
    private String dbDriverClassName;
    @Value("${db.database}")
    private String dbDatabaseType;
    @Value("${db.url}")
    private String dbUrl;
    @Value("${db.username}")
    private String dbUsername;
    @Value("${db.password}")
    private String dbPassword;
    @Value("${db.hibernate.ddl-auto}")
    private String dbHibernateDdlAuto;
    @Value("${hibernate.show_sql}")
    private String dbShowSql;
    @Value("${hibernate.c3p0.min_size}")
    private String c3p0MinSize;
    @Value("${hibernate.c3p0.max_size}")
    private String c3p0MaxSize;
    @Value("${hibernate.c3p0.timeout}")
    private String c3p0Timeout;
    @Value("${hibernate.dialect}")
    private String dialect;
    @Value("${db.connection.pool_size}")
    private String connectionPoolSize;
    @Value("${hibernate.generate.statistics}")
    private String statistics;

    @Bean
    public LocalSessionFactoryBean sessionFactory() {
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
        sessionFactory.setDataSource(dataSource());
        sessionFactory.setPackagesToScan("com.als");
        sessionFactory.setAnnotatedClasses(EopInformation.class);
        sessionFactory.setHibernateProperties(hibernateProperties());

        return sessionFactory;
    }

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(dbDriverClassName);
        dataSource.setUrl(dbUrl);
        dataSource.setUsername(dbUsername);
        dataSource.setPassword(dbPassword);

        log.info("Datasource created. {}", dataSource.getUrl());

        return dataSource;
    }

    @Bean
    public PlatformTransactionManager hibernateTransactionManager() {
        HibernateTransactionManager transactionManager = new HibernateTransactionManager();
        transactionManager.setSessionFactory(sessionFactory().getObject());
        return transactionManager;
    }

    private Properties hibernateProperties() {
        Properties hibernateProperties = new Properties();
        hibernateProperties.setProperty("hibernate.hbm2ddl.auto", dbHibernateDdlAuto);
        hibernateProperties.setProperty("hibernate.show_sql", dbShowSql);
        hibernateProperties.setProperty("spring.jpa.database", dbDatabaseType);
        hibernateProperties.setProperty("hibernate.dialect", dialect);
        hibernateProperties.setProperty("connection.pool_size", connectionPoolSize);
        hibernateProperties.setProperty("hibernate.dialect.storage_engine", "innodb");
        hibernateProperties.setProperty("hibernate.generate_statistics", statistics);
        hibernateProperties.setProperty(C3P0_TIMEOUT, c3p0Timeout);
        hibernateProperties.setProperty(C3P0_MIN_SIZE, c3p0MinSize);
        hibernateProperties.setProperty(C3P0_MAX_SIZE, c3p0MaxSize);

        return hibernateProperties;
    }
}
信息类

package com.als.bo;
// imports omitted
@Entity(name = "EopInformation")
@Table(name = "Eop_Information")
@NamedQueries(value = {
    @NamedQuery(name = "EopInformation.findAll", query = "SELECT e FROM EopInformation e")
})
public class EopInformation {

   @Id
   @GeneratedValue(strategy= GenerationType.AUTO)
   private long id;
   @OneToOne
   @JoinColumn(name = "employer_als_id")
   private Employer employer;
   @Column(name = "sftp_directory")
   private String sftpDirectory;
   @Column(name = "eop_filename_pattern")
   private String eopFilenamePattern;

   // Getters and Setters omitted
}
服务等级

@Service
@Transactional
public class UserServiceImpl implements UserService {
    @Autowired
    public UserServiceImpl(Userdao userdao, S3FileService fileservice) {
       this.userdao = userdao;
       this.fileService = fileservice;
    }

    @Override
    public void process() {
       logger.info("Begin processing EOP Files.");
       long startTime = System.currentTimeMillis();
       try {
           List<EopInformation> eopSftpList = userdao.getEOPFilenamePatterns();
           logger.info("Eop Information size: " + eopSftpList.size());
       
       // Code omitted

我发现了问题。这是用户错误。代码没有问题

@Repository
public class UserdaoImpl implements Userdao {

    @Autowired
    public UserdaoImpl(SessionFactory sessionFactory, DataSource dataSource) {
        this.sessionFactory = sessionFactory;
        this.dataSource = dataSource;
    }

    public Session getCurrentSession() {
        return sessionFactory.getCurrentSession();
    }
    
    @Override
    public List<EopInformation> getEOPFilenamePatterns() {
        try {
            logger.info("Begin");
            List<EopInformation> eopInformationListH = new ArrayList<>();

            for (int i = 0; i < 1; i++) {
                eopInformationListH = hibernateQuery();
            }
            logger.info("Hibernate result size: " + eopInformationListH.size());

            List<EopInformation> eopInformationList = new ArrayList<>();
            eopInformationList = datasourceQuery();
            logger.info("Datasource result size: " + eopInformationList.size());
            return eopInformationList;
        } catch (Exception e) {
            logger.error("Exception getting SFTP EOP data . {}", e.getMessage(), e);
            return new ArrayList<>(0);
        }
    }

    private List<EopInformation> hibernateQuery() {
        try {
            Session session = getCurrentSession();
            session.clear();
            logger.info("Begin hibernate query userdao");
            String query = "SELECT e FROM EopInformation e";

            Query<EopInformation> q = session.createQuery(query, EopInformation.class);
            List<EopInformation> results = q.list();
            return results;

        } catch (Exception e) {
            logger.error("Exception in Hibernate Query. {}", e.getMessage(), e);
            return new ArrayList<>(0);
        }
    }

    private List<EopInformation> datasourceQuery() {
        logger.info("Begin datasource query userdao");
        String query = "SELECT e.eop_filename_pattern, e.sftp_directory FROM Eop_Information e";
        try (Connection connection = dataSource.getConnection();
             java.sql.PreparedStatement statement = connection.prepareStatement(query);
             ResultSet rs = statement.executeQuery()) {

            List<EopInformation> eopInformationList = new ArrayList<>();

            while (rs.next()) {
                logger.info("Looping");
                String filename = rs.getString("eop_filename_pattern");
                String directory = rs.getString("sftp_directory");
                EopInformation eop = new EopInformation();
                eop.setEopFilenamePattern(filename);
                eop.setSftpDirectory(directory);
                eopInformationList.add(eop);
            }
            return eopInformationList;
        } catch (Exception e) {
            logger.error("Exception getting Eop Information. {}", e.getMessage(), e);
            return new ArrayList<>(0);
        }
    }
}
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.als</groupId>
    <artifactId>ALS</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>My Maven Webapp</name>
    <url>http://maven.apache.org</url>

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

    <properties>
        <org.springframework-version>5.2.5.RELEASE</org.springframework-version>
        <spring.security.version>3.2.1.RELEASE</spring.security.version>
        <org.aspectj-version>1.6.10</org.aspectj-version>
        <org.slf4j-version>1.7.30</org.slf4j-version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-bom</artifactId>
                <version>1.11.860</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>s3control</artifactId>
            <version>2.14.17</version>
        </dependency>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>auth</artifactId>
            <version>2.14.17</version>
        </dependency>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>s3</artifactId>
            <version>2.14.17</version>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.6</version>
        </dependency>
        <dependency>
            <groupId>org.modelmapper</groupId>
            <artifactId>modelmapper</artifactId>
            <version>2.3.2</version>
        </dependency>

        <dependency>
            <groupId>com.googlecode</groupId>
            <artifactId>google-api-translate-java</artifactId>
            <version>0.92</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.10</version>
        </dependency>
        <dependency>
            <groupId>com.mandrillapp.wrapper.lutung</groupId>
            <artifactId>lutung</artifactId>
            <version>0.0.7</version>
        </dependency>
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.2.1</version>
        </dependency>

        <dependency>
            <groupId>com.opencsv</groupId>
            <artifactId>opencsv</artifactId>
            <version>4.0</version>
        </dependency>

        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.1</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>3.3</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.4</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
            <version>2.0</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.9</version>
        </dependency>

        <dependency>
            <groupId>net.sourceforge.jexcelapi</groupId>
            <artifactId>jxl</artifactId>
            <version>2.6.12</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox</artifactId>
            <version>2.0.19</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.0.1-FINAL</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-dbcp</artifactId>
            <version>9.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>7.0.21</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.10</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-c3p0</artifactId>
            <version>5.4.14.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.4.14.Final</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20090211</version>
        </dependency>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.8.3</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${org.springframework-version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
            <version>2.3.4.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.3.2</version>
        </dependency>

        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.1</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>MyApp</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <webappDirectory>target</webappDirectory>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>

    </build>
</project>
dao.UserdaoImpl - Begin
dao.UserdaoImpl - Begin hibernate query userdao
dao.UserdaoImpl - Hibernate result size: 0
dao.UserdaoImpl - Begin datasource query userdao
dao.UserdaoImpl - Datasource result size: 0
service.UserServiceImpl - Eop Information size: 0