Использование пользовательских конвертеров в SelectWhereStepJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Использование пользовательских конвертеров в SelectWhereStep

Сообщение Anonymous »

Каков рекомендуемый способ использования пользовательских преобразователей в SelectWhereStep запроса?
У меня есть следующая таблица базы данных:

Код: Выделить всё

product
- id INT
- name VARCHAR
- type VARCHAR
Значения в таблице товаров выглядят примерно так:



id
имя
тип< /th>




1
Общая книга
книга_в мягкой обложке


2
Новости дня
digital_newspaper

< tr>
3
Горячий журнал
paper_magazine



Важной частью является столбец type, который представляет собой денормализованный VARCHAR в базе данных. Это объединенное значение типа книги и носителя.
У меня есть класс в Java под названием ProductType, который представляет это:

Код: Выделить всё

public class ProductMediumType {
private ProductType type; // This is an enum
private Medium medium; // This is an enum
.....
}
Я создал реализацию org.jooq.Converter, как определено здесь: Преобразование пользовательского типа данных

Код: Выделить всё

public class ProductMediumTypeConverter extends AbstractConverter {}
Я хочу использовать это в SelectWhereStep:

Код: Выделить всё

ProductMediumTypeConverter mediumTypeConverter = .....;
ProductMediumType mediumType = ....;

Product prod = create
.select(
PRODUCT.ID,
PRODUCT.NAME,
PRODUCT.TYPE.convert(mediumTypeConverter)
)
.from(PRODUCT)
.where(PRODUCT.TYPE.eq(/* HERE */))
.fetchInto(Product.class);
Я знаю, что могу напрямую использовать метод конвертера .to(), но не думаю, что это хорошо читается. Есть ли лучший способ сделать это?
Кроме того, я знаю, что могу создавать собственные преобразователи и использовать их во время генерации кода, но, к сожалению, в моем случае это невозможно.

Подробнее здесь: https://stackoverflow.com/questions/792 ... twherestep
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»