У меня были некоторые проблемы в Swift 1.2 с использованием UInt
, сейчас я использую Int
, и это работает. В этом примере показано, как преобразовать изображение в изображение в градациях серого.
let imageRect = self.myImage.frame
let colorSpace = CGColorSpaceCreateDeviceGray()
let width = imageRect.width
let height = imageRect.height
let bitmapInfo = CGBitmapInfo(CGImageAlphaInfo.None.rawValue)
let context = CGBitmapContextCreate(nil, Int(width), Int(height), 8, 0, colorSpace, bitmapInfo)
Обновление в спящем режиме не является ОБНОВЛЕНИЕМ в языке SQL. Hibernate обрабатывает ОБНОВЛЕНИЯ SQL автоматически через кэш состояний в объекте сеанса.
Но это только для сущностей, загруженных в текущем сеансе. Этот метод, session.update (object) , предназначен для присоединения объекта с другого уровня к текущему сеансу для отслеживания и, возможно, обновления в конце.
В вашем случае это просто NOOP. Это будет неприятно, если:
Email email = new Email("andre", "girafa", "hi");
Session session = factory.openSession();
Transaction tx = session.beginTransaction();
int id = session.save(email);
Email anotherEmail = new Email("", "", "");
anotherEmail.id = id;
session.update(anotherEmail); // will throw
Вы можете узнать больше о семантике метода обновления в справочнике по Hibernate .
Нет ошибок, потому что это тот же экземпляр вы обновляете.
Ошибка возникает, если в сеансе присутствует ДРУГОЙ постоянный экземпляр и вы пытаетесь выполнить update ().
Вы можете попробовать с session.flush ()? Чтобы узнать, вызывает ли это исключение (иногда фиксация может не сбрасывать данные в зависимости от режима очистки).
Хотя я бы сказал, что исключение выдается только в том случае, если объект был обновлен вне области действия текущего сеанса, скажем, параллельным клиентом.