У меня очень простой граф объектов, который я хочу сохранить в базе данных с помощью MyBatis. Если я создаю новый графический объект (BatisNode с двумя деталями), как написать код, чтобы убедиться, что дочерние объекты созданы? Вот подробности:Вставка дочерних объектов в MyBatis
public class BatisNode {
protected int id;
protected List details;
protected String name;
//Constructor and getters.
}
public class BatisNodeDetail {
protected int id;
protected BatisNode parent;
protected String name;
//Constructor and getters.
}
Схема:
CREATE TABLE node ( node_id int auto_increment primary key, name varchar(255) ); CREATE TABLE node_detail( node_detail_id int auto_increment primary key, name varchar(255) );
Mapper:
INSERT INTO node ( name ) SELECT #{name}; SELECT node_id id, name FROM node WHERE node_id=#{id};
Спасибо за совет. Это мой первый проект батиса. Это звучит как довольно много работы для двух объектов. У меня больше в реальной жизни. Будет ли спящий режим лучшим выбором здесь? – User1
Невозможно выбрать между Hibernate и iBatis только с этой информацией. Количество объектов здесь неважно (на самом деле мой подход платит больше, если есть много объектов). Более уместна сложность графиков объектов, которые обрабатываются в ваших методах обслуживания, необходимость обнаружения «грязных» дочерних объектов и т. Д. IBatis более легкий/простой/низкий уровень, чем Hibernate/JPA, и это всегда имеет преимущества (легче понять и проявить себя, меньше сюрпризов или грязных ошибок) и недостатки (требуется больше сантехники, меньше мощности и возможностей, трудно реализуемых для сложных случаев использования) – leonbloy