【发布时间】:2011-03-30 09:33:21
【问题描述】:
我对关联关系有一些问题,这是我的代码:
类模块版本
@ManyToMany(mappedBy="listModuleVersions")
private List<SuiteVersion> suiteVersions = new ArrayList<SuiteVersion>();
类套件版本
@ManyToMany()
private List<ModuleVersion> listModuleVersions = new ArrayList<ModuleVersion>();*
我希望能够通过删除关联自动删除套件版本或模块版本。例如,如果我使用此代码删除 SuiteVersion,则会自动删除 SuiteVersion 与 ModuleVersion 的关联。但是,如果我删除一个 moduleVersion,它不会自动删除 SuiteVersion -> ModuleVersion 的关联。可以使用 ModuleVersion 自动执行此操作吗?
更新
如果我删除一个添加了 CASCADETYPE.REMOVE 的模块,这是休眠执行的操作 ...
Hibernate: delete from SUITE_VERSION_MODULE_VERSION where suiteVersions_ID_SUITE_VERSION=?
Hibernate: delete from SUITE_VERSION_MODULE_VERSION where suiteVersions_ID_SUITE_VERSION=?
Hibernate: delete from SUITE_VERSION_MODULE_VERSION where suiteVersions_ID_SUITE_VERSION=?
Hibernate: delete from SUITE_VERSION_MODULE_VERSION where suiteVersions_ID_SUITE_VERSION=?
Hibernate: delete from SUITE_VERSION_MODULE_VERSION where suiteVersions_ID_SUITE_VERSION=?
//Hibernate: delete from SUITE_VERSION where ID_SUITE_VERSION=?
//Hibernate: delete from SUITE_VERSION where ID_SUITE_VERSION=?
Hibernate: delete from MODULE_VERSION where ID_MODULE_VERSION=?
//Hibernate: delete from SUITE_VERSION where ID_SUITE_VERSION=?
//Hibernate: delete from SUITE_VERSION where ID_SUITE_VERSION=?
Hibernate: delete from MODULE_VERSION where ID_MODULE_VERSION=?
//Hibernate: delete from SUITE_VERSION where ID_SUITE_VERSION=?
Hibernate: delete from MODULE_VERSION where ID_MODULE_VERSION=?
Hibernate: delete from MODULE where ID_MODULE=?
我只想执行 none comitted 部分。 提前感谢您的帮助,
更新2
我尝试使用此方法实现删除模块:
public static void removeModule(Module module) {
for(ModuleVersion moduleVersion : module.getListModuleVersion()){
for(SuiteVersion suiteVersion : moduleVersion.getSuiteVersions()){
sessionFactory = HibernateFactory.getSessionFactory();
session = sessionFactory.getCurrentSession();
transaction = session.beginTransaction();
suiteVersion.removeFromModuleVersions(moduleVersion);
transaction.commit();
}
}
sessionFactory = HibernateFactory.getSessionFactory();
session = sessionFactory.getCurrentSession();
session.delete(module);
transaction.commit();
}
但我现在有这个问题:
Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
最好的问候,
弗洛伦特。
P.S:我是法国人,对不起我的英语。
【问题讨论】:
标签: java hibernate orm persistence