@Override
  @Transactional
  public void delete(Book book) {
    if (book == null) {
      log.debug("Skipping deletion for null model!");
      return;
    }

    // remove the reference from the associated owner
    if (book.getOwner() != null) {
      book.getOwner().removeBook(book);
    }

    super.delete(book);
  }
 @Override
 public Book getNewWithDefaults() {
   Book result = getNew();
   result.initDefaultValues();
   return result;
 }