Генерация классов для ключей с помощью jOOQ

Вы можете вызвать функцию getCookie с именем нужного файла cookie, а затем проверить, является ли оно = null.

function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    }
    else
    {
        begin += 2;
        var end = document.cookie.indexOf(";", begin);
        if (end == -1) {
        end = dc.length;
        }
    }
    // because unescape has been deprecated, replaced with decodeURI
    //return unescape(dc.substring(begin + prefix.length, end));
    return decodeURI(dc.substring(begin + prefix.length, end));
} 

function doSomething() {
    var myCookie = getCookie("MyCookie");

    if (myCookie == null) {
        // do cookie doesn't exist stuff;
    }
    else {
        // do cookie exists stuff
    }
}
1
задан Ynv 17 January 2019 в 16:17
поделиться

1 ответ

Функция jOOQ на дорожной карте

Вы не первый, кто с этой идеей. Существует ожидающий запрос функции для генерации таких классов «оболочки ключей» из коробки (пока недоступно в 3.11): https://github.com/jOOQ/jOOQ/issues/6124

[ 1112] Или это обсуждение: https://groups.google.com/forum/#!topic/jooq-user/53RZqoewa3g

В вашем распоряжении есть дополнительные приложения для этой функции. Как только такие типы существуют:

  • Вы можете присоединиться только путем сопоставления первичных ключей / внешних ключей, поскольку они больше не будут моделироваться произвольными числовыми типами
  • Будет невозможно забыть столбец в составном ключе при объединении или фильтрации, так как составной ключ станет одним значением

Случай составного ключа - тот, который делает это сложным для поддержки jOOQ из коробки, как разновидность сначала необходимо реализовать дополнительные функции, чтобы сгруппировать несколько столбцов в синтетический столбец. Кроме того, как уникальные ключи, так и внешние ключи могут накладываться друг на друга, поэтому существует немало крайних случаев, которые необходимо учитывать.

Реализация самостоятельно

Вы можете реализовать это самостоятельно. Если ваша схема имеет только суррогатные ключи из одного столбца, то вы можете переопределить класс JavaGenerator и сгенерировать дополнительный класс для таблицы, а также программно добавить соответствующие конфигурации forcedType и Converter в конфигурацию генератора кода.

Другие, возможно, сделали что-то подобное, но я не знаю ни о какой общедоступной реализации.

Реализация его в базе данных

В принципе, вы также можете реализовать это непосредственно в базе данных, например, если вы используете PostgreSQL. Вы можете обернуть свой UUID в составной тип и использовать его для своих первичных ключей / внешних ключей:

create type pk_a as (id bigint);
create type pk_b as (id bigint);

create table t_a(id pk_a primary key);
create table t_b(id pk_b primary key, a pk_a references t_a);

insert into t_a values(row(1)::pk_a);
insert into t_b values(row(2)::pk_b, row(1)::pk_a);

Генератор кода jOOQ должен подобрать эти типы и сделать то, что вам нужно. Конечно, есть довольно много предостережений, учитывая, что я почти никогда не видел эту практику в дикой природе: -)

0
ответ дан Lukas Eder 17 January 2019 в 16:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: