问题标签 [kotlin-exposed]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2192 浏览

postgresql - 不支持 postgresql 事务隔离级别 4

我正在尝试创建表(postgres + 暴露 + ktor + JDBC),我得到了那个错误。

在下面找到我的配置:

构建.gradle

你好.kt

这是我遇到的错误

0 投票
3 回答
5078 浏览

sql - Kotlin 暴露了 DSL 查询映射

  • 如何将选择查询映射到类
  • 是否有任何@transactional 注释来执行查询?

    /li>
0 投票
2 回答
1453 浏览

spring-boot - 在 Spring Boot 中的 @Transactional 方法之后,实体未在 Exposed 中持久化

我有以下 DAO 类

如果我手动创建事务,那么实体会保留在数据库中,请参见下面的代码

但是,如果我在 Spring Boot 应用程序的 @Transactional 方法中使用相同CustomerDAOOrderDAO方法,就会开始发生奇怪的事情。

在这种情况下,仅customer创建但不创建。order如果我取消注释上面的两行,则不会创建客户,第二行将导致 NPE。

所以在@Transactional 方法中,实体只有在被另一个引用或被查询时才会被持久化。

无论如何,如何让它坚持下去?

提前致谢,

0 投票
1 回答
1850 浏览

kotlin - 如何进行批量更新?

我正在尝试使用 Exposed 更新 MySql 中行列表上的特定列。

实际上 Exposed 支持 a batchInsert,但没有类似于 a 的东西batchUpdate,有什么解决方法吗?

注意:该表不是IdTable.

0 投票
1 回答
8044 浏览

kotlin - Kotlin Exposed - 如果不存在和冲突如何插入?

我环顾四周,但似乎找不到世界上如何使用 Kotlin 的 Exposed SQL 框架“插入如果不存在”或“插入冲突”。我目前正在编写原始 SQL 语句并按原样执行它们。在某些情况下,我认为我无法避免这种情况,但如果可能的话,我更愿意使用该框架。我没有看到 DSL 或 DAO 语法的任何选项。

编辑:

对于任何可能遇到此问题的人,Tapac 的评论对我有用。

将 Table.insertIgnore() 用于“如果不存在则插入”,并且在https://github.com/JetBrains/Exposed/wiki/FAQ#q-is-upsert-supported中存在一个 upsert 示例。

0 投票
0 回答
391 浏览

data-binding - 处理 DAO 和 Tornadofx 时将数据绑定到视图模型

我正在使用 JetBrains/Exposed 进行数据库操作。我能够利用 DAO 方法在 TableView 上显示数据库中的数据。DSL 方法非常具有挑战性。

成功显示数据后,数据绑定就消失了。我的人班看起来像这样

我的视图模型看起来像这样

每次我想对我得到的模型进行更改

java.lang.IllegalStateException: No transaction in context.

我知道这是因为在事务上下文中使用 Person 来执行 Db 查询。

鉴于我正在使用 JetBrains/Expose 的 DAO API,我想知道如何将数据绑定到视图模型。

谢谢。

0 投票
1 回答
1169 浏览

kotlin - 我们如何在 Kotlin Exposed 中编写查询?

我想使用 Kotlin Exposed 创建类似于 Ruby 的 ActiveRecord Scopes 的东西。

例如,我想分解以下查询,以便第一部分起到作用域的作用。

这个查询返回我想要的。

我想将此部分用作范围:

然后能够使用 q1“范围”细化查询

所以是这样的:

最终我想把它推到测量对象或测量类中,这样我就可以做这样的事情

0 投票
0 回答
341 浏览

kotlin-exposed - Exposed 有什么方法可以在表声明中执行 ON UPDATE 吗?

我想更新类似于 MySQL 的“ON UPDATE CURRENT_TIMESTAMP”的时间戳。

在 Exposed 中声明一个表时有没有这样做?

0 投票
1 回答
1352 浏览

kotlin - 如何根据传入参数向 Exposed DAO API“.find”添加多个过滤条件

我正在使用 kotlin 编写一个 dropwizard 应用程序,其中一种资源方法将接收多个参数(电子邮件、电话、is_deleted 等)。根据传入的查询参数,我必须过滤表。我正在使用 Exposed 的 DAO API 来构造查询。

val result = User.find { //SqlExpressionBuilder Users.isDeleted eq false Users.email eq "so@soso.com" }.sortedByDescending { it.createdAt }

如何使用 for in 循环根据查询参数映射向查询添加多个 where 条件?

0 投票
2 回答
3567 浏览

kotlin - Kotlin Exposed 的异常处理 - 如何捕获唯一约束违规异常?

我在表中的列上添加了唯一约束。当违反约束时,它会引发一个我无法捕捉并传达给用户的异常。

Exposed: Transaction attempt #0 failed: java.sql.BatchUpdateException: Batch entry 0 INSERT INTO templates (created_at, is_deleted, name, sections) VALUES ('2018-10-03 16:31:25.732+05:30', 'FALSE', 'Template1', '[{"title":"Introduction"}]') RETURNING * was aborted: ERROR: duplicate key value violates unique constraint "templates_name_key" Detail: Key (name)=(Template1) already exists. Call getNextException to see other errors in the batch.. Statement(s): INSERT INTO templates (created_at, is_deleted, name, sections) VALUES (?, ?, ?, ?) ! org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "templates_name_key" ! Detail: Key (name)=(Template1) already exists.

  • 如何使用用户可读的消息捕获这些类型的 SQL 异常?
  • 是否有任何最佳实践来捕获这些异常?
  • 我们应该在事务内部还是外部捕获它们?有没有这样的必要性?

下面是我试过的片段。

消息SQL constraint violated根本不打印。也尝试了使用不同异常类的多个捕获。没有任何效果。

发送此类通用错误消息无济于事。