Согласно документации Pickle , вы можете предоставить метод с именем __getstate__()
, который возвращает что-то, представляющее состояние, которое вы хотите мариновать (если оно не предоставлено, pickle
использует thing.__dict__
]). Таким образом, вы можете сделать что-то вроде этого:
class Thing:
def __getstate__(self):
state = dict(self.__dict__)
del state['cachedBar']
return state
Это не должно быть диктом, но если это что-то другое, вам также нужно реализовать __setstate__(state)
.
Вы можете ограничить, какие классы DataNucleus отслеживает изменения, чтобы он повторно запускал улучшение только тогда, когда классы вашей модели действительно изменяются.
Перейдите в свойства проекта и выберите Google-> Приложение Двигатель-> Орм. Здесь вы можете указать шаблоны для файлов, которые нужно отслеживать.
Например, я помещаю все компоненты моей модели в подкаталог model /, поэтому мне подходит шаблон src / ** / model. Также есть примеры шаблонов в диалоговом окне «Добавить».
Enhancer настраивается как Builder в свойствах вашего проекта. Я подозреваю, что вы можете безопасно отключить его во время редактирования, а затем, когда вы захотите его запустить, вам придется повторно включить и построить снова, чтобы убедиться, что любые изменения, внесенные вами в постоянные классы, отражаются правильно, прежде чем вы попытаетесь запустить или протестировать ваше приложение локально. Затем вы можете загрузить в движок приложения.
Это не решит проблему фокусировки, но снизит частоту запуска энхансера:
Вы может настроить усилитель только на улучшение определенных файлов. Вы можете указать шаблон на основе пакетов или имени класса. Чтобы указать шаблон, щелкните меню проекта, затем свойства, затем Google, затем движок приложений, затем ORM. Если вы присваиваете своим постоянным классам общий суффикс, вы можете указать такой шаблон, как «* Entity.java»