设置外键的ID

时间:2011-10-17 13:29:35

标签: hibernate foreign-key-relationship

我有两张桌子:

Categories (id, name, abbr)
Project (id, name, categoriesID) 

关系是一对多(1个类别到多个项目)。我使用Hibernate DAO和Mapping将数据存储在数据库中。首先,我存储Categories的数据,对于Project表,我希望categoriesID引用Categories表中的正确id。

例如,数据库中有三个类别: Type1,Type2,Type3 。每个 Type 都会自动分配自己的ID。假设 Project1 属于 Type2 。如何在 Project 表中设置 categoriesID 以引用 Categories <中的 id / em> Type2 的表格?

我在Project表中设置了外键以引用Categories表中的id。 我的主要是这样的(数据是从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生成。目前,存储为所有项目的 categoriesID 的内容是存储在类别表中的最后一条记录,这使得它们都属于同一类别。我想要的是Project来引用正确的categoriesID。我怎样才能做到这一点?我仍然无法想出这个概念。有人可以帮忙吗?感谢。

0 个答案:

没有答案