小编tru*_*ian的帖子

Spring JPA:如何禁用某些方法的查询创建

我有一个自定义存储库,声明如下(用 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允许自定义查询的注释不满足我的要求。
此外,在实际情况下,这样做是必要且合理的,因此如果您试图建议“更好”的设计模式(例如将实现放在服务层等),请不要发布您的答案或评论。

java spring jpa kotlin

10
推荐指数
1
解决办法
4348
查看次数

如何使用 VS Code 调试 TypeScript 中的 Node.js 依赖包

假设我们有两个具有以下结构的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

7
推荐指数
1
解决办法
1933
查看次数

OpenAPI 3:缺少属性“$ref”

我正在 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 语言服务器中的错误吗?

visual-studio-code openapi

5
推荐指数
1
解决办法
6434
查看次数

VS2022 操作失败,因为无法加载项目详细信息

昨天我像往常一样处理 Blazor 项目时意外发生了这个错误。当我尝试清理、构建、重建项目时,该进程挂起此消息,并且项目中的所有依赖项(分析器、框架、包)都有一个感叹号。
然后我尝试使用包管理器控制台。该Install-Package命令也会导致相同的错误。
我搜索了整个互联网寻找解决方案,这是我尝试过的:

  • 禁用 ReSharper 2022
  • 删除VS缓存(项目根目录下的.vs文件夹)和构建结果(bin和obj文件夹)
  • 清除 NuGet 缓存
  • 卸载并重新加载项目
  • 重新打开VS2022
  • 将项目移动到新位置(路径中没有特殊字符)
  • 打开其他项目
  • 创建新项目
  • 重新启动计算机
  • 更新VS2022到最新版本
  • 重新安装VS2022
  • 使用VS2022预览版
  • 卸载VS2022并返回旧版本

这些努力都没有奏效。
值得一提的是,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)

.net visual-studio nuget-package-restore visual-studio-2022

3
推荐指数
1
解决办法
6183
查看次数