Похожие чаты

Ситуация следующая, я хочу чтобы при маппинге Table в домен

у меня данные преобразовались в value objects, для этого я в properties указываю у нужного поля composite(ValueObject, table.c.column), но при запросе он выдает исключение о конфликте

WARNING: when configuring property 'id' on Mapper[MedCard(med_cards)], column 'id' conflicts with property '<Composite at 0x7febf491a450; id>'. To resolve this, map the column to the class under a different name in the 'properties' dictionary. Or, to remove all awareness of the column entirely (including its availability as a foreign key), use the 'include_properties' or 'exclude_properties' mapper arguments to control specifically which table columns get mapped.

Указывал поле в include_properties, но все бестолку.

Код:

med_card = Table(
"med_cards",
metadata_obj,
Column("id", Integer, primary_key=True)
)

@dataclass(frozen=True)
class IDVO:
value: int

@dataclass
class MedCard:
id: IDVO
doctor_notes: List[DoctorNote]

mapper_registry = registry()

mapper_registry.map_imperatively(MedCard, med_card, properties={
"id": composite(IDVO, med_card.c.id),
"doctor_notes": relationship(DoctorNote),
})

Может есть иной способ без конфликтов поместить данные в value object при маппингк?

5 ответов

15 просмотров

Ты хочешь, чтобы в атрибуте id вместо id из таблицы лежал инстанс датакласса?

Пупа
Да

Очень странно желание. Но тебе надо тогда переименовать то, на какой атрибут мапится столбец id. Я декларативном стиле это можно сделать, как это сделать в императивном, я не знаю

Так тебе надо написать свой тип, нет? Иначе у тебя алхимия всё равно не поймёт, когда нужно будет сравнивать/записывать в базу и т.п. Хотя вроде там появилось что-то вроде compare, но хз как это работает

почему бы просто не сделать свой маппер, который будет получать модель бд и создавать доменную модель сам?

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Карта сайта