我有一个自定义存储库,声明如下(用 Kotlin 编写):
interface FooRepository : JpaRepository<Foo, Int> {
fun findByFoo(foo: String): List<Foo>
fun findByBar(bar: String): List<Foo> {
//custom implementation
}
}
data class Foo(var id: Int, var foo: String, var bar: String)
Run Code Online (Sandbox Code Playgroud)
这两种方法都满足 JPA 存储库的命名约定,但我想FooRepository.findByBar自己实现第二种方法 ( )。如何防止 JPA 为其创建查询?
请注意,我的自定义实现涉及计算逻辑,因此@Query允许自定义查询的注释不满足我的要求。
此外,在实际情况下,这样做是必要且合理的,因此如果您试图建议“更好”的设计模式(例如将实现放在服务层等),请不要发布您的答案或评论。
假设我们有两个具有以下结构的node.js项目:

Foo 项目通过在其 中声明以下内容将 Bar 作为依赖项package.json:
{
"scripts": {
"start": "ts-node src/index.ts --transpile-only --no-lazy"
},
"dependencies": {
"bar": "file:../Bar"
}
}
Run Code Online (Sandbox Code Playgroud)
我使用以下命令配置 VSCode 的调试器launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "start",
"request": "launch",
"runtimeArgs": [
"start"
],
"runtimeExecutable": "npm",
"smartStep": true,
"type": "node"
}
]
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我在调试期间进入从 Bar 导入的函数时,无论我将 Bar 的包入口定义为或,它都会进入临时编译的 js 源而不是原始的 TypeScript 源。此外,如果我在 Bar 的打字稿源中添加断点,它们甚至不会被加载。如何让调试器加载 Bar 的断点,并在调试 Foo 时直接进入 TypeScript 源?我应该修改 中的一些属性,还是在启动脚本中将更多选项传递给 ts-node ?
为了更好地说明这个问题,我将两个演示项目上传到了 GitHub:StackOverflow-Demomain …
node.js typescript visual-studio-code ts-node vscode-debugger
我正在 VSCode 中使用 OpenAPI 3 编写一个 API 文档,扩展名为OpenAPI (Swagger) Editor v4.9.1。直到今天它都运行得很好 - 突然我的文档充满了所有模式声明中“属性”的错误。错误如下:
Missing property "$ref". yaml-schema: Validation schema for OpenAPI Specification 3.0.X.
Run Code Online (Sandbox Code Playgroud)

显然,这个错误根本没有意义,因为根据 OpenAPI 规范,$ref 在任何地方都不是必填字段。
此外,我仍然可以使用 swagger 的默认渲染器预览该文档,或者使用其 CodeGen 工具链生成代码,这表明该文档没有实际错误。
那么发生了什么事?是 OpenAPI 语言服务器中的错误吗?
昨天我像往常一样处理 Blazor 项目时意外发生了这个错误。当我尝试清理、构建、重建项目时,该进程挂起此消息,并且项目中的所有依赖项(分析器、框架、包)都有一个感叹号。
然后我尝试使用包管理器控制台。该Install-Package命令也会导致相同的错误。
我搜索了整个互联网寻找解决方案,这是我尝试过的:
这些努力都没有奏效。
值得一提的是,dotnet restoreanddotnet build命令仍然有效,并且我的计算机上的 VS2019 也可以正常工作(但当前项目基于 .Net 6,所以我必须使用 VS2022)。为了提供更多信息,这里是我当前 VS2022(17.0.3) 的
结果:dotnet --info
.NET SDK (global.json):
Version: 6.0.101
Commit: ef49f6213a
Runtime environments:
OS Name: Windows
OS Version: 10.0.19042
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\6.0.101\
Host (useful for support):
Version: 6.0.1
Commit: 3a25a7f1cc
.NET SDKs installed:
2.1.700 [C:\Program Files\dotnet\sdk] …Run Code Online (Sandbox Code Playgroud)