@Id 注解属性的 Kotlin 内联类

2024-02-27

在我的业务逻辑中,我必须处理很多实体 ID,所有这些 ID 都是类型String,这可能会导致混乱,尤其是当您将其中几个作为方法参数传递时。所以我考虑引入一点类型安全内联类。我知道,内联类在 v1.3 中仍然被标记为实验性的。然而,有没有人尝试过使用内联类 as the @Id数据库映射上下文中的属性,在我的例子中是带有 Spring Data 的 MongoDB。

@Entity
class User {
   @Id
   var id: UserId
}

with

inline class UserId(val id: String)

我猜底层属性没有拆箱,所以 _id 最终会作为数据库中的对象? Spring 的 CrudRepository 接口又如何呢?它似乎可以编译,但最终会起作用:

interface UserRepository : CrudRepository<User, UserId>

可能正在使用AttributeConverter将内联类转换为原始可能会完成这项工作。有这方面的经验吗?


作为对 @JuergenZimmermann 答案的更新,从版本 3.2(当前是候选版本)开始,Spring Data Commons 就支持这一点:

https://github.com/spring-projects/spring-data-commons/releases/tag/3.2.0-M1 https://github.com/spring-projects/spring-data-commons/releases/tag/3.2.0-M1

然后OP编写的代码应该按照给定的方式工作。更详细的讨论请参见这里:https://github.com/spring-projects/spring-data-commons/pull/2866 https://github.com/spring-projects/spring-data-commons/pull/2866

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

@Id 注解属性的 Kotlin 内联类 的相关文章

  • 如何使用 Kotlin 在 ListAdapter 中使用 Filterable?

    我会用一个SearchView过滤我的RecyclerView 在 stackoverflow 和其他网站上我发现只是使用的示例Filterable与 Java 和RecyclerView Adapter当我使用时ListAdapter 所
  • Perl Mongo 查找对象 ID

    你会认为这是一件简单的事情 我有一个集合中的对象 ID 列表 我想根据对象 ID 获取单个记录 谷歌搜索过 但没有任何帮助 所以我有对象 ID 5106c7703abc120a04070b34 my client MongoDB Mongo
  • 领域模型可以知道存储库吗?

    可能对于某些域逻辑实现实体需要访问存储库以更新 删除自身或任何相关实体 这听起来对吗 不 不是 至少对于标有 的问题 领域驱动设计 标签 当然 Active Record 模式有权在某些系统中生存 并且有些人发现强耦合很有用 但在 DDD
  • RecyclerView 适配器的 Kotlin 泛型

    我正在尝试编写一个通用的 recyclerview 适配器 我找到了几个例子 然而 仍然无法弄清楚如何实现通用适配器 我写的代码是 open abstract class BaseAdapter
  • MongoDB 使用 $sort、$skip 和 $limit 返回错误的行

    这是我正在使用的功能 MyModel aggregate match query sort createdAt 1 skip skip limit 10 allowDiskUse true query是过滤行 skip是基于分页的动态值 即
  • MongoDB 获取聚合查询中的第一个和最后一个文档

    我如何获得第一个和最后一个文档time场地 我可以用 group并得到 first and last文档 但我不需要在这里分组 只需获取第一个和最后一个完整文档 也许我可以用slice 此查询不起作用 aggregate 353469045
  • 我可以按日期查询 MongoDB ObjectId 吗?

    我知道 ObjectId 包含它们的创建日期 有没有办法查询ObjectId的这方面 将时间戳弹出到 ObjectId 中 http www kchodorow com blog 2011 12 20 querying for timest
  • MongoDB C# 驱动程序“找不到光标”

    我有一个相当密集的操作MongoCursor循环运行几个小时 在通过 c 驱动程序运行的 vb net 应用程序上 我不太确定是什么导致了它 但一段时间后我遇到了异常 Cursor not found 这可能是由于游标超时造成的 有什么办法
  • 使用 dockerfile 在 docker 中安装 mongodb 驱动

    我有一个 mongodb docker 容器 我需要另一个安装了 php 和 apache 的 docker 容器 我想从这个容器运行一个 php 脚本并将一些数据发送到 mongodb 容器以将数据保存在 mongodb 数据库中 所以我
  • Kotlin:覆盖子类型中的通用属性

    我试图编写一些通用代码 但无法摆脱Type of PROPERTY is not a subtype of the overridden property error 我的代码的简化版本 abstract class BaseP
  • Kotlin 协程阻塞 Android 中的主线程

    我是 Kotlin 和协程的新手 我有一个fun在我的活动及其内部 检查User用户名和密码 如果为真 则返回Users object 一切都好 但是当我按下按钮时 我的活动被阻止并等待响应Users login 我用这个有趣的 priva
  • Inno Setup安装先决条件[重复]

    这个问题在这里已经有答案了 我正在通过 Inno Setup 创建一个安装程序 我看到很多关于如何检测先决条件是否存在的代码示例 但没有任何关于当我找不到先决条件时如何实际安装先决条件的代码示例 我确信它非常简单 但是我该如何安装先决条件呢
  • Kotlin JavaScript 到 TypeScript 定义文件

    我已经找到了ts2kt 库 https github com Kotlin ts2kt这将从任意位置创建 Kotlin 头文件 d ts文件 但是 我想朝相反的方向走 我想构建一个可以编译为 JavaScript 的 Kotlin 库 但我
  • Mongoose 限制/偏移量和计数查询

    查询性能有点奇怪 我需要运行一个查询来计算文档总数 并且还可以返回一个可以限制和偏移的结果集 所以 我总共有 57 个文档 用户想要 10 个文档偏移 20 我可以想到两种方法来做到这一点 首先是查询所有 57 个文档 以数组形式返回 然后
  • 如何使用 jackson 反序列化为 Kotlin 集合

    我想要的示例代码 data class D val a String val b Int val jsonStr a value1 b 1 a value2 b 2 what I need val listOfD List
  • 从 DecorView@2da7146[MyActivity] 中找不到 ViewTreeLifecycleOwner

    从撰写更新后alpha 11 to alpha 12 or beta 01 每当我打开具有撰写视图的活动或片段时 我都会遇到此崩溃 我在用AppCompatActivity它实现了LifecycleOwner 所以这非常奇怪 java la
  • 为什么线程比协程表现出更好的性能?

    我编写了 3 个简单的程序来测试协程相对于线程的性能优势 每个程序都会执行许多常见的简单计算 所有程序都彼此分开运行 除了执行时间之外 我还通过以下方式测量了 CPU 使用率Visual VMIDE 插件 第一个程序使用以下方法进行所有计算
  • 在 MongoDB 中,如何根据嵌入对象中的属性对文档进行排序?

    在我的产品集合中 我可以找到已在 GB 地区发布的所有产品 gt db products find release region GB pretty id foo release region GB date ISODate 2012 03
  • MongoDB 在仅返回 _id 时使用 COLLSCAN

    我想返回 MongoDB 集合中的所有 ID 我使用了以下代码 db coll find id 1 但MongoDB扫描整个集合而不是从默认读取信息index id 1 从日志中 find collection filter project
  • 使用 AWS MSK 连接器连接到 AWS VPC 内的 MongoDB atlas

    我正在尝试使用MongoDB使用更改流Kafka 我选择 AWS MSK 是因为我的整个基础设施都位于 AWS 内 并且可以轻松与其他 AWS 服务集成 I created an AWS MSK cluster within the VPC

随机推荐

  • Unity 同一物体上的多个碰撞器

    我在同一个游戏对象上使用多个盒子碰撞器 问题是 是否可以使用单独引用每个碰撞器gameObject getComponent enabled false 请记住 我的碰撞器很少 我希望其中一些碰撞器保持启用状态 而其他碰撞器将被禁用 我所做
  • 通过 jest mock 测试 catch 块

    我试图通过玩笑来测试异步 redux 操作的 catch 块 但是在模拟中抛出一个 catch 会导致整个测试失败 我的行动如下 export function loginUser username password return asyn
  • 使用 Google Apps 脚本操作 DOM

    是否可以隐藏 display none 某些标签并使用 Google Apps 脚本更改 Gmail 下拉列表中的标签顺序 标签 移动 不会 Google Apps 脚本在服务器端运行 它无法访问 Gmail Calendar 或 Shee
  • XStream arrayList 与 XML 之间的转换

    我目前不知道问题出在哪里 第一次使用 xml 我在将 ArrayList 放入 xml 文件并从中取出它时遇到了一些问题 我发现了这个 我尝试以同样的方式做 如何使用 XStream 将对象列表转换为 XML 文档 https stacko
  • Python自动选择串口(适用于Arduino)

    目前 Python 程序必须知道设备 Arduino 位于哪个端口 然后 Python 才能与设备进行通信 Problem 每当设备拔出并重新插入时 其 COM 端口都会发生变化 因此必须再次向 Python 提供正确的串行端口 以便它找到
  • 为什么 Android 6 上没有授予 GCM 权限?

    背景 我正在尝试调查办公室的应用程序需要更改其权限 以便更好地支持 Android 6 问题 我发现哪些权限需要确认 哪些不需要 除了以下一项
  • 运行程序所花费的时间

    如何在文本框或输出中打印程序运行时间 我希望将其显示到 for 循环中 以获取每个 for 循环需要多少时间 你可以尝试 DateTime dt DateTime Now for TimeSpan ts DateTime Now dt te
  • 如何使用其他 Angular 组件中的“templateref”?

    如何使用templateRef来自其他组件模板文件 I have BatmanComponent SpidermanComponent and a JokerComponent 其中一些具有相似的功能 因此我决定创建一个HumanCompo
  • Xamarin 自定义表视图标头

    我想在表视图部分标题的标题中添加一个按钮 即加号按钮 经过研究发现 要做到这一点 您必须创建一个自定义标题 我不知道该怎么做 如何在 xamarin 中为表视图部分创建自定义标头 我也使用 Xaml 和 C 请参阅这些博客文章 https
  • 使用自定义字体为警报对话框项目设置字体

    我正在这样创建一个警报对话框 AlertDialog Builder alertDialog new AlertDialog Builder view getContext alertDialog setCustomTitle null a
  • 使用 where 和 offset fetch 子句的简单选择在 Oracle 中不起作用

    我正在尝试选择行where条件并且需要分页 所以我添加了Fetch with offset 使其动态 子句 但随后它给出了此错误 ORA 00933 SQL 命令未正确结束 位置 414 我的查询 SELECT up NAME upozil
  • 是否可以使用ggplot2中的facet_grid()让annotation_logtics()仅出现在一个子图上?

    我使用以下代码在 ggplot2 中使用facet grid 创建一个包含三个子图的图 day lt c 5 Aug 5 Aug 5 Aug 10 Aug 10 Aug 10 Aug 17 Aug 17 Aug 17 Aug station
  • [myArray addObject:[[objcBlock copy] autorelease]] 在释放数组时崩溃

    我编写了一个类来声明性地描述 UIView 动画序列 我的方法采用动画块的可变参数并将它们放入数组中 所以在我的循环中我想这样做 animations addObject block copy autorelease I first cop
  • 正则表达式匹配回句点或字符串开头

    我想匹配一个单词 然后获取它之前的所有内容 直到第一次出现一个句点或字符串的开头 例如 给定此字符串并搜索单词 regex s Do not match this Or this Or this either I like regex It
  • Elasticsearch 不返回单数/复数匹配项

    我正在使用 elasticsearch 的 php 库来索引和查找我的网站中的文档 这是创建索引的代码 curl XPUT http localhost 9200 test d index numberOfShards 1 numberOf
  • 如何在 SVG 中导出 PNG

    我在导出包含 PNG 图像的 SVG 时遇到一些问题 我在用着D3JS和以下代码 mysvg append image attr width 299 attr height 168 attr xlink href image png var
  • Passport.js 支持ajax 吗?

    我想用passport js进行ajax登录 我有设置 Passport js 的常用代码 route app post api auth login passport authenticate local login successRed
  • 协议“Line”只能用作通用约束,因为它具有 Self 或关联类型要求

    我正在快速使用协议 我认为它类似于其他语言中的 界面 我正在测试它如何处理变量 协议对我来说相当新 因为我从未见过带有非静态变量的接口 我创建了一个车站协议 protocol Station var id String get set va
  • 如果没有 .cs 文件,Web 应用程序将无法发布

    我有一个 asp net Web 应用程序项目 正在通过 Visual Studio 2013 中的 生成 gt 发布 来发布 我正在使用所选的预编译选项发布到文件系统 我的项目在打包 发布 Web 设置屏幕中选择了 仅运行此应用程序所需的
  • @Id 注解属性的 Kotlin 内联类

    在我的业务逻辑中 我必须处理很多实体 ID 所有这些 ID 都是类型String 这可能会导致混乱 尤其是当您将其中几个作为方法参数传递时 所以我考虑引入一点类型安全内联类 我知道 内联类在 v1 3 中仍然被标记为实验性的 然而 有没有人