首页 > 解决方案 > 使用 Java/JPA/Hibernate 在 create table 语句中为列设置排序规则和语言环境

问题描述

我正在使用 PostgreSQL,并想直接使用 JPA/Hibernate 创建我的数据库模式。在 PostgreSQL 中,我不能(不幸地)将数据库默认排序规则设置为基于 ICU 的排序规则,即以下方法不起作用:

CREATE DATABASE my_db ENCODING 'UTF8' LC_COLLATE 'und-x-icu' LC_CTYPE 'und-x-icu' TEMPLATE 'template0';

原因可以从这个线程中读取: https ://www.postgresql.org/message-id/flat/3366.1498183854%40sss.pgh.pa.us#3366.1498183854@sss.pgh.pa.us

这意味着当我在数据库中创建表时,我需要设置默认排序规则。这意味着 CREATE TABLE 语句应该类似于:

CREATE TABLE my_table (
    my_column TEXT COLLATE "und-x-icu"
);

如何使用 JPA 注释或类似的标准方法来做到这一点?

标签: javapostgresqlhibernatejpaicu

解决方案


推荐阅读