SpringSide 关于 userdao 的接口实现

张斌的 发布于 2012/05/23 09:15
阅读 913
收藏 0

@江南白衣 你好,想跟你请教个问题:

从3开始学习,中间断代了,最近开始学习4,遇到个基础问题,在mini-web中,userdao的findByLoginName是一个接口方法,我没有找到实现,请教是采用什么方式来实现调用的,跟踪代码,看到是代理,却没有看到实现,请赐教,谢谢

mail:zhangbin.zj@gmail.com

qq:852126880

weibo:弓长文武白勺

以下是问题补充:

@张斌的:是我描述不清,还是太简单被鄙视,求指导 (2012/05/23 09:51)
加载中
0
墨竹
墨竹

AccountManager
 
public User findUserByLoginName(String loginName) { return userDao.findUniqueBy("loginName", loginName); }

SimpleHibernateDao:

        /**

* 按属性查找唯一对象, 匹配方式为相等.
*/
public T findUniqueBy(final String propertyName, final Object value) {
Assert.hasText(propertyName, "propertyName不能为空");
Criterion criterion = Restrictions.eq(propertyName, value);
return (T) createCriteria(criterion).uniqueResult();
}
0
张斌的

引用来自“墨竹”的答案

AccountManager
 
public User findUserByLoginName(String loginName) { return userDao.findUniqueBy("loginName", loginName); }

SimpleHibernateDao:

        /**

* 按属性查找唯一对象, 匹配方式为相等.
*/
public T findUniqueBy(final String propertyName, final Object value) {
Assert.hasText(propertyName, "propertyName不能为空");
Criterion criterion = Restrictions.eq(propertyName, value);
return (T) createCriteria(criterion).uniqueResult();
}

感谢回复,我在springside的mini-web看到的userdao是:

public interface UserDao extends PagingAndSortingRepository<User, Long> {

    User findByLoginName(String loginName);

}

 

跟您提供的方法不太一样,是基于什么实现访问到您提供的方法的呢?我在demo中也没有找到该方法,如果我没记错的话,您提供的是springside3的实现,是么

0
张斌的

引用来自“张斌的”的答案

引用来自“墨竹”的答案

AccountManager
 
public User findUserByLoginName(String loginName) { return userDao.findUniqueBy("loginName", loginName); }

SimpleHibernateDao:

        /**

* 按属性查找唯一对象, 匹配方式为相等.
*/
public T findUniqueBy(final String propertyName, final Object value) {
Assert.hasText(propertyName, "propertyName不能为空");
Criterion criterion = Restrictions.eq(propertyName, value);
return (T) createCriteria(criterion).uniqueResult();
}

感谢回复,我在springside的mini-web看到的userdao是:

public interface UserDao extends PagingAndSortingRepository<User, Long> {

    User findByLoginName(String loginName);

}

 

跟您提供的方法不太一样,是基于什么实现访问到您提供的方法的呢?我在demo中也没有找到该方法,如果我没记错的话,您提供的是springside3的实现,是么

补充:AccountManager:

public User findUserByLoginName(String loginName) {

return userDao.findByLoginName(loginName);

}

0
ikai
ikai

findByLoginName 是用的spring data JPA . 是一个ORM的框架,可以根据接口名来进行数据的操作,

而不需要自己实现接口,写sql语句.

建议看看https://github.com/springside/springside4/wiki/Reference的wiki.

 

0
墨竹
墨竹

引用来自“张斌的”的答案

引用来自“墨竹”的答案

AccountManager
 
public User findUserByLoginName(String loginName) { return userDao.findUniqueBy("loginName", loginName); }

SimpleHibernateDao:

        /**

* 按属性查找唯一对象, 匹配方式为相等.
*/
public T findUniqueBy(final String propertyName, final Object value) {
Assert.hasText(propertyName, "propertyName不能为空");
Criterion criterion = Restrictions.eq(propertyName, value);
return (T) createCriteria(criterion).uniqueResult();
}

感谢回复,我在springside的mini-web看到的userdao是:

public interface UserDao extends PagingAndSortingRepository<User, Long> {

    User findByLoginName(String loginName);

}

 

跟您提供的方法不太一样,是基于什么实现访问到您提供的方法的呢?我在demo中也没有找到该方法,如果我没记错的话,您提供的是springside3的实现,是么

对,不好意思,没看你用的是4
0
邸星星
邸星星

给个链接吧,感觉这次springside的wiki比较丰富。

https://github.com/springside/springside4/wiki/JPA

返回顶部
顶部