Мне нужно только однонаправленное отношение OneToMany, но с точки зрения производительности я хочу спросить, какая лучшая практика ?.Perfomance in Hibernate 4.2 с @OneToMany - однонаправленный против двунаправленного
Я сделал тест с JUnit, и результат с двунаправленной является: 1.9s и однонаправленный код 2.4S, кажется, для однонаправленных требует больше времени
Я использую Hibernate 4.2.21
@Unidirectional 2.4s
Parent.class
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "parentuni_id")
private Set<ChildUni> childs;
Hibernate: select nextval ('parentuni_seq')
Hibernate: select nextval ('childuni_seq')
Hibernate: select nextval ('childuni_seq')
Hibernate: insert into parentuni (parentuni_name, parentuni_id) values (?, ?)
Hibernate: insert into childuni (childuni_name, childuni_id) values (?, ?)
Hibernate: insert into childuni (childuni_name, childuni_id) values (?, ?)
Hibernate: update childuni set parentuni_id=? where childuni_id=?
Hibernate: update childuni set parentuni_id=? where childuni_id=?
@Bidirectional 1.9s
Parent.class
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "parent")
private Set<Child> childs;
Child.class
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "parent_id", nullable = false)
private Parent parent;
Hibernate: select nextval ('parent_seq')
Hibernate: select nextval ('child_seq')
Hibernate: select nextval ('child_seq')
Hibernate: insert into parent (parent_name, parent_id) values (?, ?)
Hibernate: insert into Child (child_name, parent_id, child_id) values (?, ?, ?)
Hibernate: insert into Child (child_name, parent_id, child_id) values (?, ?, ?)