数据访问配置
jmix.data.number-id-cache-size
如果实体的 ID 是 Integer
或 Long
类型,且带有 @JmixGeneratedValue
注解,当通过 Metadata.create()
在内存中创建实体时,会立即为新实例分配 ID。这个新的 ID 是通过 序列生成 机制从数据库序列中获取下一个值。为了减少对数据库的访问,序列的增量(increment)默认设置为 100,也就是说,框架会在每次调用时会获取这 100 个新的 ID。因此,其实框架是“缓存”了一些 ID 进行分发,直到用完这 100 个 ID 才会再次从数据库获取。
该配置用于定义索引的增量,亦即框架缓存的 ID 范围。
如果数据库已经用一些实体了,而此时需要修改这个配置,请使用新的增量值(与 jmix.data.number-id-cache-size 相等)重新创建已有的索引,索引起始值为已有 ID 的最大值。
|
如果使用相同的序列在存储过程中创建实体,则强烈建议将此属性的值设置为 0
并使用增量 1
重新创建序列以禁用缓存。
默认值:100
jmix.data.unique-constraint-violation-pattern
处理 违反唯一性约束 机制时使用的一个正则表达式,用于识别数据库抛出的违反唯一性约束异常。当正则表达式能匹配时,会从匹配的第一个非空 group 获取约束名。示例:
jmix.data.unique-constraint-violation-pattern = ERROR: duplicate key value violates unique constraint "(.+)"
通过这个配置可以在任何语言的 DBMS 版本中识别违反唯一性约束的异常。
jmix.data.use-entity-data-store-for-id-sequence
如果配置为 true
,则用于生成实体 ID 的序列会与实体保存在同一个数据存储中(实体的 ID 为 Integer
或 Long
且带 @JmixGeneratedValue
注解)。否则,保存在主数据存储中。
默认值:false
jmix.data.use-read-only-transaction-for-load
设置 DataManager 的所有加载数据的方法都使用只读事务。
默认值:true
jmix.eclipselink.query-cache-enabled
如果配置为 false
,则对所有方法禁用 查询缓存,不论方法带了什么参数或注解。
默认值:true
本页是否有帮助?
感谢您的反馈