У меня есть классы и две таблицы, отличные от TYPO3. Я определил таблицу non-TYPO3 как таблицу без столбцов uid, pid и т. Д.Сопоставление Extbase с таблицей non-TYPO3
Мои два класса:
- класс Tx_Abc_Domain_Model_Location расширяет Tx_Extbase_DomainObject_AbstractEntity
- класс Tx_Abc_Domain_Model_Facility расширяет Tx_Extbase_DomainObject_AbstractEntity
Мои две таблицы (с колоннами):
- локаций
- ZipCode
- город
- facility_id
- объекты
- facility_id
- имя
Я сопоставляются атрибуты, как это:
config.tx_extbase.persistence.classes {
Tx_Abc_Domain_Model_Location.mapping {
tableName = locations
columns {
zipcode.mapOnProperty = zipcode
city.mapOnProperty = city
facility_id.mapOnProperty = facility
}
}
Tx_Abc_Domain_Model_Facility.mapping {
tableName = facilities
columns {
facility_id.mapOnProperty = uid
name.mapOnProperty = name
}
}
}
Моя проблема:
Атрибут объекта моей модели местоположения получил тип Tx_Abc_Domain_Model_Facility
и когда я смотрю на местоположение с помощью LocationRepository он создает мне модель местоположения, которая содержит модель объекта.
Проблема возникает, когда я делаю поиск, возвращает несколько результатов. то есть местоположение с zipcode 12345 имеет два разных объекта (а расположение таблиц получило две строки с разными идентификаторами объекта), тогда я ожидаю получить две модели местоположения, и каждая из них получит правильную модель объекта.
Но вместо этого я получаю две модели местоположения, в которых есть одна и та же модель объекта. У них есть все возможности первого найденного местоположения.
Даже если я изменяю тип атрибута объекта на целое число, есть неправильные идентификаторы. Но если я разрешаю результат необработанного запроса в репозитории, я получаю правильные идентификаторы.
Я получаю также правильные идентификаторы или модели, когда я добавляю к обеим таблицам uid-column.
Нет ли возможности сопоставления таблиц без колонки uid с моделями Extbase?
Спасибо.