栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring通用道类名称

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring通用道类名称

我做了类似的事情,您也需​​要将通用类也用作构造函数参数,我的也使用休眠实体,但是您可以传入表名的字符串。

public class DomainRepository<T> {    @Resource(name = "sessionFactory")    protected SessionFactory sessionFactory; public DomainRepository(Class genericType) {        this.genericType = genericType;    } @Transactional(readonly = true)    public T get(final long id) {        return (T) sessionFactory.getCurrentSession().get(genericType, id);    }

然后,您可以子类化(如果需要)以自定义或简单地在spring配置中设置bean,如t所示:

<bean id="tagRepository" >        <constructor-arg value="com.yourcompnay.domain.Tag"/></bean>

因此,在您的代码中,您可以像这样引用tagRepository(除了上面和下面发布的代码之外,不需要其他编码):

@Resource(name = "tagRepository")private DomainRepository<Tag> tagRepository;

另外,我将其称为存储库而不是服务,服务处理不同的类型及其交互(而不仅仅是一个)。特别是使用SQL字符串的示例:

public final String tableName;public DomainRepository(String tableName) {      this.tableName = tableName;}public List<T> getAll(Integer status) {    Session session = sessionFactory.getCurrentSession();    Query query = session.createQuery("FROM " + tableName + " WHERe status = " + status);    return query.list();}

并像这样定义您的豆子

<bean id="addressRepository" >  <constructor-arg value="address"/></bean>

然后,您还可以根据需要自己创建子类:

public class PersonRepository extends DomainRepository<Person> {    public PersonRepository(){        super("person"); //assumes table name is person    }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/413939.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号