删除EJB3中的实体的问题

时间:2014-09-28 15:25:07

标签: java java-ee ejb

我有一个关于删除EJB3中的实体的问题。

我有两个数据库表:MainCategoryCategory

首先,我必须找到所有MainCategory个实体'名称及其Category,所以我这样做:

public List<MainCategory> findAllWithCategories() {
        TypedQuery<MainCategory> query = em.createNamedQuery("MainCategory.findAll", MainCategory.class);

        List<MainCategory> result = query.getResultList();

            for (MainCategory mc : result){
                try{
                    Hibernate.initialize(mc.getSubCategories());
                 }catch (Exception e){
                    e.printStackTrace();
                 }
            }
        return result;
    }

比我需要它的类别,但我必须初始化一些东西,所以我这样做(其中selectedMainCategoryList<MainCategory> = mainCategoryRepository.findAllWithCategories()的元素)

List<Category> mainCategories = categoryRepository.findByMainCategoryIdAndInitialze(selectedMainCategory.getId());

而不是:

List<Category> subCategories = mainCategory.getSubCategories();

在执行某些操作后,我需要删除Category,所以我这样做(其中selectedSubCategorysubCategories的元素):

selectedMainCategory.getSubCategories.remove(selectedSubCategory);
mainCategoryRepository.modify(selectedMainCategory);

selectedSubCategory尚未从selectedMainCategory.getSubCategories()中移除getSubCategories.remove(object)。 好的,如果我通过ID找到它并手动从列表中删除,我可以手动将其删除,但我无法找出{{1}}在这种情况下无效的原因。我想这是两个java对象相等的东西,但我不确切知道。在这种情况下,EJB和Java如何工作?你能解释一下吗?

0 个答案:

没有答案