2016-06-15 72 views
3

这是具有两种方法如何在具有相同类实现的2接口的Play框架中编写绑定方法?

package services;//this is my service interface class 
import com.google.inject.ImplementedBy; 
import dtos.MainDTO; 
@ImplementedBy(UserServiceImpl.class) 
public interface UserService { 

    MainDTO getUserDetaile(Integer userId); 

    MainDTO getAllUserDetails(); 
} 

这是有我的第二个接口服务类中的两个DAO查询方法

package services;//this is my DAO interface class 
import java.util.List; 
import org.springframework.data.jpa.repository.Query; 
import org.springframework.data.repository.CrudRepository; 
import org.springframework.data.repository.query.Param; 

public interface UserRepository extends CrudRepository<Users, Long> { 

    @Query("select userId,firstName from Users where userId =:userId") 
    public List<Object[]> getUserDetails(@Param("userId") Integer userId); 

    @Query("select userId,firstName from Users") 
    public List<Object[]> getAllUserDetails(); 
} 

这是上述两个接口的类的实现类的我的第一个接口服务类。 在第一个接口中,我注释了@Implementedby注释,并且它的工作正常。但是对于第二个界面需要添加什么?

package services; 

import java.util.LinkedList; 
import java.util.List; 

import javax.inject.Inject; 
import org.springframework.stereotype.Service; 

import dtos.MainDTO; 
import dtos.UserDTO; 

@Service 
public class UserServiceImpl implements UserService { 

    private UserRepository userRepository; 

    @Inject 
    public UserServiceImpl(UserRepository userRepository){ 
     this.userRepository = userRepository; 
    } 

    @Override 
    public MainDTO getUserDetaile(Integer userId){ 
     //method implementaion goes here 
    } 
    @Override 
    public MainDTO getAllUserDetails() { 

     //method implementaion goes here 
} 

面临的一个问题像

enter image description here

+0

http://i.stack.imgur.com/tpsvO.jpg这是我的问题,我一直在faceing –

回答

2

首先,你需要有guice-repository库添加here it is

在你的模块,你需要安装库像以下

@Override 
protected void configure() { 
    //Repository classes auto-scanned by package name 
    install(new ScanningJpaRepositoryModule(repositoriesBasePackageName, persistenceUnitName)); 
} 

一旦你的回购协议扫描,你可以注入你的界面直接进入您的服务或您想去的地方。

全部细节可以找到here

Play模块的有效构造函数如下所示。

public YourModule(Environment environment, Configuration configuration) { 
     this.environment = environment; 
     this.configuration = configuration; 
    } 
+0

首先感谢你的朋友。我按照你所说的。但现在我显示的问题像没有有效的构造函数模块[模块]不能实例化。 –

+0

@HaiPandu我已经用Play模块的有效构造函数更新了答案。 –

相关问题