簡體   English   中英

Spring Web, Kotlin, Gradle, Intelresolvedli問題

[英]Spring Web, Kotlin, Gradle, IntelliJ -> MongoRepository “Unresolved reference: save” problem

當我嘗試使用 MongoRepository 時遇到問題。 這是我的文檔 class:

package model

import org.springframework.data.annotation.Id
import org.springframework.data.mongodb.core.mapping.Document

@Document
class Product (@Id val name: String, var desc: String, var price: Double) {

    var pictureCategory: String? = null

}

這是存儲庫:

package model.repositories

import model.Product
import org.springframework.data.mongodb.repository.MongoRepository
import org.springframework.stereotype.Repository

@Repository
interface ProductRepository : MongoRepository <Product, String>

這是我有編譯錯誤的文件:

package controllers

import model.Product
import model.repositories.ProductRepository
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping

@Controller
@RequestMapping("/product")
class ProductController {

    @PostMapping("")
    fun addProduct(@RequestBody newProduct: Product){
        ProductRepository.save()  //Unresolved reference: save <----------------------
    }
}

我試圖執行並使無效/重新啟動,但沒有任何改變。

這是我的 build.gradle.kts 文件:

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    id("org.springframework.boot") version "2.4.3"
    id("io.spring.dependency-management") version "1.0.11.RELEASE"
    kotlin("jvm") version "1.4.30"
    kotlin("plugin.spring") version "1.4.30"
    kotlin("plugin.jpa") version "1.4.30"
}

group = "com.example"
version = "1.0.0"
java.sourceCompatibility = JavaVersion.VERSION_11

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-data-mongodb")
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.withType<KotlinCompile> {
    kotlinOptions {
        freeCompilerArgs = listOf("-Xjsr305=strict")
        jvmTarget = "11"
    }
}

tasks.withType<Test> {
    useJUnitPlatform()
}

也許我必須添加一些依賴項?

您應該在 REST controller 中注入您的存儲庫,而不是使用 static“保存”方法。

參見:例如https://spring.io/guides/tutorials/rest/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM