Одиночные короткие выписки:
if (condition) output = firstChoice;
else doSomethingElse();
Многократные или длинные выписки
if (condition) {
output = firstChoice;
...
} else {
...
}
Я почти уверен, что в вашем коде нет ничего плохого. Причина, по которой вы получаете эту ошибку, заключается в проблеме с усилителем Datanucleus.
Если вы видите эту ошибку, выйдите из Jetty и проверьте консоль внутри Eclipse (вам нужно выбрать правильную консоль на маленькой панели инструментов над консолью окно). Должно быть написано что-то вроде:
DataNucleus Enhancer (версия 1.1.4): Улучшение классов. DataNucleus Enhancer успешно завершен для классов X . Тайминги: вход = 547 мс, усиление = 76 мс, всего = 623 мс. Для получения полной информации обратитесь к журналу
... где X - количество обработанных классов. Число должно быть равно количеству определенных вами «сущностей».
Но иногда по какой-то причине отображается 0, поэтому вы получаете ошибку ClassNotPersistableException.
Чтобы исправить, откройте класс сущности, измените что-нибудь (добавьте пробел или что-то еще) и сохраните. Проверяйте консоль, пока она не сообщит, что она улучшила все ваши классы сущностей. Затем перезапустите отладчик и повторите попытку.
"The class "com.wayd.server.beans.WinePost" is not persistable. This means that it either hasnt been enhanced, or that the enhanced version of the file is not in the CLASSPATH (or is hidden by an unenhanced version), or the Meta-Data/annotations for the class are not found."
So why not check each of those 3 conditions ? One of them is true.
Я раньше видел нечто очень похожее, и это было связано с тем, что persistantManager вызывается разными методами одновременно. Это происходит потому, что pm должен быть единственным экземпляром (который не является singleton , поэтому вам придется управлять им самостоятельно).
Условия могут измениться между средой разработки и производственной средой после развертывания, так что это также может объяснить то, что вы видите.
Проблема была решена путем использования synchronized
в объявлениях методов, которые воспользуйтесь PM.
Может быть, это не ваш случай, но вы можете попробовать.