The last strategy is the good one. You msut simply not call update()
or any other method:
Product persistentProduct = (Product) session.get(Product.class, product.getId());
persistentProduct.setName(product.getName());
// copy other fields
// nothing more