17.1 案例开发

实体层

包是main.java.com.domain
父类

-- BaseDomain.java

import java.io.Serializable;
import org.apache.commons.lang3.builder.ToStringBuilder;


// 实现Serializable接口,以便JVM序列化实体对象
public class BaseDomain implements Serializable
{
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}

具体的子类(注意Hibernate JPA注解):

-- Board.java

package main.java.com.domain;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.Table;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;


@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Table(name = "t_board")
public class Board extends BaseDomain {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "board_id")
    private int boardId;

    @Column(name = "board_name")
    private String boardName;

    @Column(name = "board_desc")
    private String boardDesc;
    // 包含的话题的数目
    @Column(name = "topic_num")
    private int topicNum ;

    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = "manBoards", fetch = FetchType.LAZY)
    private Set<User> users = new HashSet<User>();

    // get set

}

问:是否需要对应的 .hbm.xml?自动生成的也不准。

持久层dao

在main.java.com.dao包下。
父类 BaseDao.java提供一些通用性的方法。
翻页 Page.java

例:   BoardDao.java

import java.util.Iterator;
import org.springframework.stereotype.Repository;

import main.java.com.domain.Board;


@Repository
public class BoardDao extends BaseDao<Board>{
    protected final String GET_BOARD_NUM = "select count(f.boardId) from Board f";

    public long getBoardNum() {    
        Iterator iter = getHibernateTemplate().iterate(GET_BOARD_NUM);
        return ((Long)iter.next());
    }
}

对dao层的配置文件 baobaotao-dao.xml

服务层

写了两个UserService 和ForumService

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值