![](/img/trans.png)
[英]Spring Data MongoRepository save(T) not working… sometimes
[英]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“保存”方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.