Mirai Hibernate 前置插件
Mirai Console 的前置插件,用于 Hibernate ORM 框架的初始化
插件自带聊天记录器 MiraiHibernateRecorder,
会记录 群聊/私聊 的内容到数据库方便其他插件使用,默认是 h2database 数据库(since 2.2.0+)
每个插件都有应有独立的数据库配置在其配置文件目录 config/.../hibernate.properties
例如,聊天记录器数据库配置在 config/xyz.cssxsh.mirai.plugin.mirai-hibernate-plugin/hibernate.properties
本插件打包了以下版本的数据库驱动和连接池
com.mysql:mysql-connector-j:9.0.0- mysql.hibernate.propertiesorg.mariadb.jdbc:mariadb-java-client:3.4.1- mariadb.hibernate.propertiesorg.xerial:sqlite-jdbc:3.46.0.1- sqlite.hibernate.propertiesorg.postgresql:postgresql:42.7.3- postgresql.hibernate.propertiescom.h2database:h2:2.3.230- h2.hibernate.propertiescom.microsoft.sqlserver:mssql-jdbc:12.8.0.jre11- sqlserver.hibernate.propertiescom.zaxxer:HikariCP:5.0.1
需要其他数据库驱动或连接池支持,请添加 plugin-shared-libraries 依赖,有2种方法
-
将 Jar包 放到
plugin-shared-libraries目录中一同被mirai-console加载 -
在
plugin-shared-libraries/libraries.txt中添加 maven 引用,
例如com.oracle.database.jdbc:ojdbc11:21.8.0.0
repositories {
mavenCentral()
}
dependencies {
compileOnly("xyz.cssxsh.mirai:mirai-hibernate-plugin:${version}")
}
// hibernate 6 和 HikariCP 5 需要 jdk11
mirai {
jvmTarget = JavaVersion.VERSION_11
}repositories {
mavenCentral()
}
dependencies {
implementation("xyz.cssxsh.mirai:mirai-hibernate-plugin:${version}")
}需要手动对 xyz.cssxsh.mirai.hibernate.factory 进行初始化,和对 MiraiHibernateRecorder 进行注册
Maven 项目请根据上面的 maven-central 指向的链接查询相关配置方法
使用本插件作为 mirai-api-http 的消息源需要额外的拓展插件 https://github.com/cssxsh/mirai-hibernate-http
-
MiraiHibernateConfiguration 配置的,对应于
JvmPlugin的SessionFactory
默认将会读取(生成)在config目录下的hibernate.properties作为配置文件
并且自动扫描加载当前插件的entry类包中被jakarta.persistence.Entity标记的实体类 -
MiraiHibernateRecorder
是本插件自带的消息记录器,通过对MessageEvent和MessagePostSendEvent记录,保存消息历史到数据库 -
CriteriaBuilder.rand
MiraiHibernateConfiguration中会对 Sqlite / PostgreSql 的random进行别名注册为rand统一SQL语句的中的随机函数名 -
CriteriaBuilder.dice
MiraiHibernateConfiguration中会注册名为dice的宏,用于随机取行
请确认 mcl.jar 的版本是 2.1.0+
./mcl --update-package xyz.cssxsh.mirai:mirai-hibernate-plugin --channel maven-stable --type plugins
- 将原
config/xyz.cssxsh.mirai.plugin.mirai-hibernate-plugin/hibernate.properties改名备份为hibernate.backup.properties - 按照 example 中的例子写一份新的
hibernate.properties - 重启
mirai-console
