⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testboardarticlemasterdetail.java

📁 hibernate框架例子程序
💻 JAVA
字号:
package test.com.redsaga.hibernatesample.step2;

import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.LockMode;
import net.sf.hibernate.Session;

import com.redsaga.hibnatesample.step2.Article;
import com.redsaga.hibnatesample.step2.Board;
import com.redsaga.hibnatesample.step2.ForumService;
import com.redsaga.hibnatesample.step2.ForumServiceFactory;
import com.redsaga.hibnatesample.step2.User;
import com.redsaga.hibnatesample.step2.base._BaseRootDAO;
import com.redsaga.hibnatesample.step2.dao.RootDAO;
import com.redsaga.hibnatesample.step2.dao.UserDAO;
import com.redsaga.hibnatesample.step2.dao._RootDAO;

import junit.framework.TestCase;

/**
 * @author cao
 */
public class TestBoardArticleMasterDetail extends TestCase {

	public static void main(String[] args) {
		junit.textui.TestRunner.run(TestUserCRUD.class);
	}

	public void setUp() throws HibernateException
	{
		_BaseRootDAO.initialize();
	}

	public void testBoardArticleMasterDetail() throws HibernateException
	{
		ForumService fs = ForumServiceFactory.getHibernateForumService();
		
		//创建用户
		User shark = new User();
		shark.setName("Shark");
		shark.setPwd("guessme");
		fs.saveUser(shark);
		
		//创建版面
		Board a = new Board();
		a.setCreateBy(shark);
		a.setName("A");
		fs.addBoard(a);
		
		//创建贴子
		Article article1 = new Article();
		article1.setTitle("article1");
		article1.setLastUpdateTime(new Date());
		article1.setLastUpdateBy(shark);
		article1.setCreateBy(shark);

		Article article2 = new Article();
		article2.setTitle("article2");
		article2.setCreateBy(shark);
		article2.setLastUpdateBy(shark);
		article2.setLastUpdateTime(new Date());
		
		//把帖子加入到版面
		fs.addNewPost(a,article1);
		fs.addNewPost(a,article2);
		
		Board a2 = fs.getBoard(a.getId());
		a2.getArticles();
		Session session = RootDAO.createSession();
		assertEquals("[article1][article2]",printArticleInBoard(a2));
		RootDAO.getInstance().closeSession();
		
		//删除版面
		fs.deleteBoard(a2);

		//确认相关的帖子也被级联删除了
		session = RootDAO.createSession();
		List shouldBeEmpty = session.find("from Article where title='article1'");
		assertEquals(0,shouldBeEmpty.size());
		RootDAO.getInstance().closeSession();
		
		fs.deleteUser(shark);
	}

	protected String printArticleInBoard(Board board) throws HibernateException
	{
		Session session = RootDAO.createSession();
		session.lock(board,LockMode.READ);
		
		Iterator it = board.getArticles().iterator();
		String articles = "";
		while (it.hasNext())
		{
			Article article = (Article) it.next();
			session.lock(article,LockMode.READ);
			articles += "["+article.getTitle()+"]";
		}
		return articles;
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -