Установка идентификатора для внешнего ключа - PullRequest
0 голосов
/ 17 октября 2011

У меня есть две таблицы:

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.Как я могу это сделать?Я все еще не мог понять концепцию.Кто-нибудь может помочь?спасибо.

...