Спросите своего администратора базы данных об аудите. Он может начать аудит с помощью простой команды, например:
AUDIT INSERT ON user.table
Затем вы можете запросить таблицу USER_AUDIT_OBJECT, чтобы определить, была ли вставка в вашу таблицу с момента последнего экспорта.
Google для Oracle аудита для получения дополнительной информации ...
The first question is why you need to serialize the static members?
Static members are associated with the class, not the instances, so it does not make sense to include them when serializing an instance.
The first solution is to make those members not static. Or, if those members are the same in the original class and the target class (same class, but possibly different runtime environments), don't serialize them at all.
I have a few thoughts on how one could send across static members, but I first need to see the use case, as in all cases that means updating the target class, and I haven't found a good reason to do so.
Ребята, статичность не означает НЕПРЕРЫВНЫЙ. Например, я могу захотеть сериализовать все состояние вычислений (да, включая статические поля - счетчики и т. Д.), Чтобы возобновить их позже, после перезапуска JVM и / или хост-компьютера.
Правильный ответ на это, как уже было сказано, - использовать интерфейс Externalizable, а не Serializable. Тогда у вас будет полный контроль над тем, что и как вы экстернализируете.
Вы можете управлять сериализацией, реализовав:
private void writeObject(ObjectOutputStream out) throws IOException;
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException;
Там полное описание сериализации http://java.sun.com/developer/technicalArticles/Programming Как уже говорилось в других ответах, /serialization/[1132293 provided.
, сериализовать статику на самом деле не имеет смысла, поскольку это объект, а не класс, который вы сериализуете и который должен это сделать, пахнет так, как будто у вас есть другие проблемы передай мне свой код.
Static members belong to the class, not to the individual objects.
You should reconsider your data structure.
Хорошие ответы и комментарии - не делайте этого. Но как?
Скорее всего, вам лучше создать объект, в котором будет храниться вся ваша «Статика». Этот объект, вероятно, также должен иметь какие-либо статические методы из вашего класса.
Каждый экземпляр вашего класса может содержать этот другой класс - или, если вам действительно нужно, вы можете сделать его синглтоном, к которому может получить доступ любой член.
После того, как вы выполните этот рефакторинг, вы обнаружите, что он должен был быть делал так все время. Вы даже можете обнаружить, что некоторые из ваших предыдущих ограничений дизайна, которые беспокоили вас на уровне нерешительности, исчезли.
Вы, вероятно, обнаружите, что это решение также решает другие проблемы сериализации, которые вы даже не заметили.
Да, мы можем сериализовать статические переменные. Но мы можем написать наши собственные writeObject()
и readObject()
. Думаю, это может решить проблему.