I've extended the pages table and now I want to use some of the data in a domain object called "Tags".
Итак, я попробовал следующее в /Configuration/TypoScript/setup.txt
:
plugin.myextension.persistence.classes.Tx_myextension_Domain_Model_Tag {
mapping {
tableName = pages
recordType = Tx_myextension_Domain_Model_Tag
columns {
tx_myextension_tag_name.mapOnProperty = name
uid.mapOnProperty = id
}
}
}
Но похоже, что расширение пытается получить доступ к таблице Tx_myextension_Domain_Model_Tag (которой не существует)
Это ошибка, которую я получаю:
Tx_Extbase_Persistence_Storage_Exception_SqlError`
Таблица 'tx_myextension_domain_model_tag' не существует: SELECT tx_myextension_domain_model_tag. * FROM tx_myextension_domain_model_tag. * FROM tx_myextension_domain_model_tag. * FROM tx_myextension_domain_model_tag. * FROM tx_myextension_domain_model_tag. 121 --- 1853032-
Есть такая проблема дизайна.
Предположим, у вас есть набор классов, реализующих похожие методы, но не идентичные.
Пример: ClassA имеет такие методы.
void Add(string str);
void Delete(string str);
List<string> GetInfo(string name);
Другой класс, ClassB, имеет следующие методы.
void Add(Dictionary Info);
void Delete(string str);
Dictionary GetInfo(string name);
Итак, природа методы аналогичны, но типы возвращаемых данных / входные параметры отличаются. Если я разработаю интерфейс для сохранения согласованности, я могу определить только операцию удаления там. В качестве альтернативы я могу думать о наборе независимых классов без каких-либо отношений друг с другом (конечно, без реализаций интерфейса), но я не думаю, что это хороший дизайн.
- Какой подход я могу использовать для реализации этого?
- Я новичок в общих интерфейсах. Помогает ли это в этом случае? Если так, я собираюсь изучить и внедрить их. чтобы увидеть, что недавно выводил процесс nohup-ed? У меня все еще открыт этот процесс, но я запустил его с перенаправлением всего вывода на /dev/...
Я знаю, что шансы крайне малы, но есть ли способ и я могу показать, что время тратится после завершения работы функции, но до того, как она вернет управление, следующим методом:
ts1 = tic; disp ('calling function'); functionCall(args); disp (['control returned to caller - ', num2str(toc(ts1))]);
Первая строка функции, которую я вызываю, -
ts2 = tic
, а последняя строка isdisp (['last line of function- ', num2str(toc(ts2))]);
В результате
вызывающая функция
последняя строка функции - 24.0043
элемент управления возвращен вызывающей стороне - 49.857
Пробираясь по межсетям, я думаю, что это симптом того, как MATLAB управляет объем памяти. Он освобождается при возврате функции, и иногда это занимает много времени. Функция выделяет несколько больших (~ 1 миллион элементов) массивов. Он также работает с дескрипторами, но не создает никаких новых объектов дескрипторов или хранилищ явно. Мои вопросы:
- Это определенно проблема с управлением памятью?
- Есть ли какой-нибудь систематический способ диагностировать причину проблемы в этой функции? WHERE th.parent = 1015 AND th.tid IN ( SELECT DISTINCT(th1.tid) FROM term_hierarchy AS th1 INNER JOIN term_hierarchy ...
I am trying to do a query like this:
DELETE FROM term_hierarchy AS th WHERE th.parent = 1015 AND th.tid IN ( SELECT DISTINCT(th1.tid) FROM term_hierarchy AS th1 INNER JOIN term_hierarchy AS th2 ON (th1.tid = th2.tid AND th2.parent != 1015) WHERE th1.parent = 1015 );
As you can probably tell, I want to delete the parent relation to 1015 if the same tid has other parents. However, that yields me a syntax error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS th WHERE th.parent = 1015 AND th.tid IN ( SELECT DISTINCT(th1.tid) FROM ter' at line 1
I have checked the documentation, and run the subquery by itself, and it all seems to check out. Can anyone figure out what's wrong here?
Update: As answered below, MySQL does not allow the table you're deleting from be used in a subquery for the condition.