EJB中用持久化的相关问题

Terryguy1991 2010-12-15 11:26:52
Course实体类中有论坛集合:
@OneToMany(fetch=FetchType.LAZY,cascade=CascadeType.REMOVE)
private List<Forum> forumList=new ArrayList<Forum>();

Forum实体类中有帖子集合:
@OneToMany(fetch=FetchType.LAZY,cascade=CascadeType.REMOVE)
private List<Post> postList=new ArrayList<Post>();

现在想要删除某课程下的所有帖子,下面两种方法那种是正确的:
方法一:
for(Forum forum:course.getForumList())
{
for(Post post:forum.getPostList())
{
em.remove(post);
}
}
方法二:
query=em.createQuery("select c.forumList from Course c where c.id=?1");
query.setParameter(1, course.getCourseId());
List<Forum> forumList=(List<Forum>)query.getResultList();
for(Forum forum:forumList)
{
Query q=em.createQuery("select f.postList from Forum f where forum.id=?1");
q.setParameter(1, forum.getForumId());
for(Post post:(List<Post>)q.getResultList())
{
em.remove(post);
}
}
不要关注一下语法上的小细节了。问那种方法是正确的?!!急!
...全文
93 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lankyfeng 2010-12-16
  • 打赏
  • 举报
回复
方法你都贴出来了, 有这个时间等, 不如自己把两种方法都跑一遍, 不就知道了
Terryguy1991 2010-12-16
  • 打赏
  • 举报
回复
为什么没人回答,很急啊
Terryguy1991 2010-12-16
  • 打赏
  • 举报
回复
为什么没人回答
Terryguy1991 2010-12-15
  • 打赏
  • 举报
回复
方法一的最上面添加一句:Course course=em.find(Course.class, c.getCourseId());

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧