У меня есть две таблицы:
Categories (id, name, abbr)
Project (id, name, categoriesID)
Отношение один ко многим (1 категории ко многим проектам).Я использую Hibernate DAOs и Mapping для хранения данных в базе данных.Во-первых, я храню данные категорий и для таблицы Project я хочу, чтобы categoryID ссылался на правильный идентификатор в таблице категорий.
Например, в базе данных есть три категории: Тип1, Тип2, Тип3 .Каждый из Тип имеет свой собственный автоматически назначенный идентификатор.Допустим, Project1 имеет Type2 .Как установить categoryID в Project таблицу для ссылки на id в Categories таблица Type2 ?
Я установил внешний ключ в таблице Project для ссылки на идентификатор в таблице Categories.У моего главного есть что-то вроде этого (данные извлекаются из файла XML):
Session session = factory.getCurrentSession();
Transaction transaction = session.beginTransaction();
ECategories eCats = information.getCategories();
for(int i=0; i<eCats.getCategory().size(); ++i) {
ECategory category = eCats.getCategory().get(i);
Categories aCats = new Categories();
aCats.setName(category.getName());
aCats.setDescription(category.getDescription());
aCats.setAbbreviation(category.getAbbreviation());
aInformation.getCategorieses().add(aCats);
}
for (int i=0; i<information.getProjects().getProjectt().size();++i){
EProject project = information.getProjects().getProject().get(i);
Project aProject = new Project();
aProject.setName(project.getName());
aCats.getProjects().add(aProject);
aInformation.getProjects().add(aProject);
}
infDAO.attachDirty(aInformation);
transaction.commit();
POJO и отображение генерируются Hibernate.В настоящее время то, что было сохранено как categoryID для всех проектов, является последней записью, сохраненной в таблице категорий, что делает ее одной и той же категорией.То, что я хотел, - это чтобы проект ссылался на правильный categoryID.Как я могу это сделать?Я все еще не мог понять концепцию.Кто-нибудь может помочь?спасибо.