Спящий новичок здесь. Я совершенно не уверен, почему я не получаю никаких исключений при выполнении кода ниже. С первой попытки этот код создает запись в моей книге.
Но меня беспокоит то, что когда я снова выполню приведенный ниже код, Hibernate не выдает никакой ошибки.
На самом деле я ожидал какого-то Нарушения ограничений первичного ключа, как то, что я делал в JDBC
код.
public class BookDao {
public void createBook(Book bookObj) {
Session session = HibernateUtil.getSessionFactory()
.getCurrentSession();
session.beginTransaction();
session.saveOrUpdate(bookObj);
session.getTransaction().commit();
}
}
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
return new AnnotationConfiguration().configure()
.buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
ex.printStackTrace();
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
public class BookDBStarter {
public static void main(String[] args) {
Book bookHF = new Book();
bookHF.setIsbn("HF-12345");
bookHF.setName("Head First HTML");
bookHF.setPublishDate(new Date());
BookDao daoBook = new BookDao();
daoBook.createBook(bookHF);
}
}
Это нормальный режим гибернации? И как я узнаю, что моя вставка прошла успешно? Есть мысли?