简体   繁体   English

春季启动 postgreSQL

[英]Spring boot postgreSQL

I am writing a web app with Spring Boot, Hibernate and PostgreSQL.我正在用 Spring Boot、Hibernate 和 PostgreSQL 编写一个 Web 应用程序。 I want to learn how to save things in DB, but now I can`t resolve my problem.我想学习如何在数据库中保存东西,但现在我无法解决我的问题。 I am getting an error caused by my controller by line:我收到由我的控制器引起的错误:

silniaRepository.save(silniaDB);

error is just:错误只是:

java.lang.NullPointerException java.lang.NullPointerException

there is my pom:有我的pom:

<name>silnia</name>
<description>Demo project for Spring Boot</description>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.2.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-    8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>8.1.5.v20120716</version>
         </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
</project>

part of my controller:我的控制器的一部分:

@Controller
public class SilniaController {
  @Autowired
  public SilniaService silniaService;
  public SilniaRepository silniaRepository;
  public SilniaDB silniaDB;

  @RequestMapping("/db")
  @ResponseBody
  public String testMethod() {

    StringBuilder response = new StringBuilder();

    SilniaDB silniaDB = new SilniaDB()
            .setNumber1(23);
    silniaRepository.save(silniaDB);

    for (SilniaDB i : silniaRepository.findAll()) {
        response.append(i).append("<br>");
    }

    return response.toString();
}

my DB model:我的数据库模型:

@Entity
public class SilniaDB {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Column
    private int number;

    public int getNumber() {
        return number;
    }

    public void setNumber (int number){this.number=number;}

    public SilniaDB setNumber1(int number) {
        this.number = number;
        return this;
    }

    public SilniaDB withNumber(final int number) {
        this.number = number;
        return this;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    @Override
    public String toString() {
        return "TaskEntity{" +
                "id=" + id +
                "number=" + number +
                '}';
    }
}

and typical repository interface:和典型的存储库界面:

@Repository
public interface SilniaRepository extends CrudRepository<SilniaDB, Long> {

    public SilniaDB findByNumber(Integer number);
}

I really spent a lot of time on that issue.我真的花了很多时间在这个问题上。 Thanks in advance for every comment or answer.预先感谢您的每一条评论或回答。

Your repository is simply not being injected.您的存储库根本没有被注入。

You have to put @Autowired for each of the dependencies individauly.您必须为每个依赖项单独放置 @Autowired。

@Autowired
private SilniaService silniaService;
@Autowired
private SilniaRepository silniaRepository;

also make those fields as private..还将这些字段设为私有。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM