问题标签 [micronaut-data]

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 投票
1 回答
492 浏览

kotlin - micronaut 数据和复合键映射

我有一个带有复合键的实体

但我需要尊重 db 表中现有的列名,它们是 'id' 和 'is_published' 但是使用 JDBCRepository 查询 db 时出现错误:

执行查询的 SQL 错误:错误:列 page_.page_id_published 不存在

有什么方法可以正确映射列吗?

0 投票
2 回答
1418 浏览

hibernate - Micronaut 数据 - 没有 [org.hibernate.SessionFactory] ​​类型的 bean

首先要提到 - 我已经启动并运行了一切。我所做的唯一更改是在代码中添加了更多存储库。

然后我得到:

15:47:58.126 [pool-2-thread-4] 错误 imhsnetty.RoutingInBoundHandler - 发生意外错误:无法为类的参数 [sessionFactory] ​​注入值:io.micronaut.transaction.hibernate5.HibernateTransactionManager

消息:对于给定的限定符,不存在 [org.hibernate.SessionFactory] ​​类型的 bean:@Named('default')。确保 bean 没有被 bean 要求禁用(启用跟踪日志以检查 'io.micronaut.context.condition'),如果启用了 bean,则确保将类声明为 bean 并启用注释处理(对于 Java 和Kotlin 的“micronaut-inject-java”依赖项应配置为注解处理器)。采用的路径:新 HibernateTransactionManager([SessionFactory sessionFactory],DataSource dataSource,Interceptor entityInterceptor)io.micronaut.context.exceptions.DependencyInjectionException:无法为类的参数 [sessionFactory] ​​注入值:io.micronaut.transaction.hibernate5.HibernateTransactionManager

我查了很多关于这个的文章,但他们都提到了依赖。但我没有改变我的依赖。于是我开始调查。但到现在都没有成功。

我仔细检查了我的 gradle.build

我还确保我使用了正确的版本,但单元测试不会运行。

将 Gradle 6.4.1 与 micronaut 1.3.5 一起使用,显然数据 1.0.2 与 jpa 一起使用。有任何想法吗?

还激活了条件跟踪,但没有关于 sessionfactory。只是一些弹簧的东西,但我不使用弹簧,所以我认为它还可以。

任何想法..因为这让我有点疯狂:D

奥利弗

0 投票
1 回答
85 浏览

jpa - 如何查找名称中包含所有字符序列的所有员工?

我正在尝试编写一个 Micronaut Data JPA finder 来查找employees与字符串列表匹配的所有内容。

给定以下员工(名字,姓氏)

  • 约翰·多伊
  • 简·多伊
  • 彼得潘
  • 西尔维奥·旺勒
  • 弗兰卡·波坦特
  • 弗兰克·波特

假设用户使用Silvio之类的查询查询系统,那么结果应该是

  • 员工:西尔维奥·旺勒

如果查询是Frank,则结果应该是

  • 员工:弗兰卡·波坦特
  • 员工:弗兰克·波特

如果查询是坦率的锅,结果也应该(不区分大小写)

  • 员工:弗兰卡·波坦特
  • 员工:弗兰克·波特

我设法为单个字符串编写了一个查找器,如下所示

对于像 frank pot这样的查询,我想将字符串标记/拆分为列表 ["frank", "pot"] 并且想知道我是否可以实现类似的东西

甚至更好地使用 JPA 的 Criteria API。您将如何实现这样的搜索器?你能给我指个方向吗?

0 投票
0 回答
670 浏览

java - Micronaut 数据事务无法获取当前线程的事务同步会话

我必须测试使用 Micronaut 数据和 Hibernate 完成的悲观锁实现。当我运行 JUnit 测试用例时,使用命令gradle test它给出错误

io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [org.hibernate.Session]: Could not obtain transaction-synchronized Session for current thread

但是当在控制器的上下文中调用时,函数 (orgAccountRepository.findTop1ByStatus) 会按预期工作。

更奇怪的是,当使用 vs code java test runner 执行时,测试运行成功。

这个测试是为了验证表行上的悲观写锁是否工作。所以本质上我必须创建多个并发事务来竞争获取锁,然后验证锁定机制是否正常工作。

有人可以就使用 JUnit 定义事务提供任何建议。

0 投票
1 回答
856 浏览

hikaricp - 使用 hikari 数据源构建 micronaut 原生镜像

面临运行打包在本机映像中的 micronaut 应用程序的问题。

micronaut-data-hibernate-jpa我使用并基于文档创建了简单的演示应用程序,我需要添加一些数据库连接池。我选择了 hikari 并添加了这样的依赖micronaut-jdbc-hikari

我使用 maven 作为构建工具并添加插件来构建 native-imagenative-image-maven-plugin

native-image.properties

当我使用 jvm 运行应用程序时,一切正常。但是当我尝试运行打包为本机图像的相同应用程序时,我得到了这样的错误

更新/解决方案

基于@Airy 的回答,我在native-image.properties 中添加了反射配置。就我而言,它看起来像这样

另一个解决方案是更改 hikari 依赖项的范围以编译并将错过的字段/类添加到提示注释中,如下所示

整个例子你可以在这里找到

0 投票
1 回答
786 浏览

oracle - Micronaut-data:未找到当前的 JDBC 连接。考虑将此调用包装在事务边界中

我得到没有找到当前的 JDBC 连接。使用 micronaut-data 时出现异常,我指的是https://github.com/tdisanti/micronaut-single-ucp

微航版本

日志:

爪哇

yml 属性

数据源配置.java

0 投票
1 回答
1261 浏览

oracle - micronaut-data:多个数据源

我在 yml 中有多个数据库,如何获取特定国家/地区的存储库?我在运行时获取国家/地区名称,并且基于国家/地区名称,我需要对该国家/地区数据库进行操作,使用单个数据库从 yml 获取默认数据库存储库。

根据 micronaut 文档:在多数据源场景中,@io.micronaut.data.annotation.Repository 注释可用于指定要使用的数据源配置。默认情况下,Micronaut Data 将查找默认数据源。

我的查询对于所有数据库都保持不变,只有 db 实例在运行时被选中进行操作。

https://micronaut-projects.github.io/micronaut-data/snapshot/guide/index.html

错误:

yml

存储库

服务

0 投票
1 回答
378 浏览

micronaut - Micronaut 数据 JDBC 和 Postgres 数组

您知道 Micronaut Data JDBC 是否支持使用 Java 数组/集合的 Postgres 数组,还是我需要定义自定义类型?如果有怎么办?我查看了https://micronaut-projects.github.io/micronaut-data/latest/guide/#jdbcDataTypes但没有看到有关数组类型的任何信息。

0 投票
1 回答
75 浏览

micronaut - 注释处理器和 Micronaut 2.0 事务的问题

我在使用 Micronaut 2.0 附带的默认事务管理时遇到问题。我知道我错过了一些东西,但我不知道是什么。我在这里创建了一个小示例项目。

当我尝试运行 Application 类时,出现以下错误:

我认为问题在于我没有正确配置注释处理器 micronaut-data-processor,但我真的迷路了。

0 投票
1 回答
177 浏览

micronaut - 使用 Micronaut Data JDBC,如何转换 WHERE 子句的值?

我将 Micronaut Data JDBC 1.1.3 与 MySQL 8.0 数据库一起使用。我想让我的id列使用BINARY(16)存储并使用 BIN_TO_UUID()/UUID_TO_BIN() 来转换值。我虽然可以使用 Micronaut Data 来做到这一点@ColumnTransformer,如下所示:

然后我使用这样的 UserRepository:

它的效果很好,因为该id列在查询结果中被正确转换。但是当我尝试通过 ID 查找某些内容时,使用userRepository.findById(id).toSingle(),我得到一个错误(“MaybeSource 为空”),我可以在跟踪输出中看到它没有转换值:


这是预期的吗?还有什么我可以做的转换查询吗?我必须写一个明确的查询吗?