Hibernate, insert or update without select
hibernate, insert, select
Solution
session.load() exists specifically for cases like this. The following:
Category category = session.load(categoryId);
product.setCategory(category);
will not hit the database. It will, however, throw an exception at a later stage (during flush, more or less) if there is no category available with given id.
Using `load()` is faster than `merge()` and has no side-effects (cascading, etc...)
Problem
I have a products objects which belongs to certain categories i.e. classical many to one relationship. ``` @Entity public class Product{ @Id @GeneratedValue(strategy = GenerationType.AUTO) Long id; String name; Double price; @ManyToOne(fetch = FetchType.LAZY) Category category; ... } @Entity public class Category implements Identifiable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String name; ... } ``` I want to insert and update products without preselecting categories. Like this: ``` Product product = dao.get(productId); Category category = dao.get(categoryId); product.setCategory(category); dao.update(product); ``` or ``` Product product = new Product(somename); Category category = dao.get(categoryId); product.setCategory(category); dao.insert(product); ``` Is it possible to update and insert without category selecting? I don't want to use HQL or direct queries for that.