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