У меня есть следующая таблица базы данных:
Код: Выделить всё
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
.....
}
Код: Выделить всё
public class ProductMediumTypeConverter extends AbstractConverter {}
Код: Выделить всё
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);
Кроме того, я знаю, что могу создавать собственные преобразователи и использовать их во время генерации кода, но, к сожалению, в моем случае это невозможно.
Подробнее здесь: https://stackoverflow.com/questions/792 ... twherestep