问题标签 [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.
kotlin - micronaut 数据和复合键映射
我有一个带有复合键的实体
但我需要尊重 db 表中现有的列名,它们是 'id' 和 'is_published' 但是使用 JDBCRepository 查询 db 时出现错误:
执行查询的 SQL 错误:错误:列 page_.page_id_published 不存在
有什么方法可以正确映射列吗?
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
奥利弗
jpa - 如何查找名称中包含所有字符序列的所有员工?
我正在尝试编写一个 Micronaut Data JPA finder 来查找employees
与字符串列表匹配的所有内容。
给定以下员工(名字,姓氏)
- 约翰·多伊
- 简·多伊
- 彼得潘
- 西尔维奥·旺勒
- 弗兰卡·波坦特
- 弗兰克·波特
假设用户使用Silvio之类的查询查询系统,那么结果应该是
- 员工:西尔维奥·旺勒
如果查询是Frank,则结果应该是
- 员工:弗兰卡·波坦特
- 员工:弗兰克·波特
如果查询是坦率的锅,结果也应该(不区分大小写)
- 员工:弗兰卡·波坦特
- 员工:弗兰克·波特
我设法为单个字符串编写了一个查找器,如下所示
对于像 frank pot这样的查询,我想将字符串标记/拆分为列表 ["frank", "pot"] 并且想知道我是否可以实现类似的东西
甚至更好地使用 JPA 的 Criteria API。您将如何实现这样的搜索器?你能给我指个方向吗?
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 定义事务提供任何建议。
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 依赖项的范围以编译并将错过的字段/类添加到提示注释中,如下所示
整个例子你可以在这里找到
oracle - Micronaut-data:未找到当前的 JDBC 连接。考虑将此调用包装在事务边界中
我得到没有找到当前的 JDBC 连接。使用 micronaut-data 时出现异常,我指的是https://github.com/tdisanti/micronaut-single-ucp
微航版本
日志:
爪哇
yml 属性
数据源配置.java
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
存储库
服务
micronaut - Micronaut 数据 JDBC 和 Postgres 数组
您知道 Micronaut Data JDBC 是否支持使用 Java 数组/集合的 Postgres 数组,还是我需要定义自定义类型?如果有怎么办?我查看了https://micronaut-projects.github.io/micronaut-data/latest/guide/#jdbcDataTypes但没有看到有关数组类型的任何信息。
micronaut - 注释处理器和 Micronaut 2.0 事务的问题
我在使用 Micronaut 2.0 附带的默认事务管理时遇到问题。我知道我错过了一些东西,但我不知道是什么。我在这里创建了一个小示例项目。
当我尝试运行 Application 类时,出现以下错误:
我认为问题在于我没有正确配置注释处理器 micronaut-data-processor,但我真的迷路了。
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 为空”),我可以在跟踪输出中看到它没有转换值:
这是预期的吗?还有什么我可以做的转换查询吗?我必须写一个明确的查询吗?