2017-07-28 54 views
0

我需要的SQL本地查询结果地图像别名为在春季价值引导JPA 例如键和列值:要获得Map作为结果弹簧设定开机JPA

查询SELECT u.first_name as firstName, u.last_name as lastName from user u回报两排。在JPA实体经理应该回报,

[{ 
"firstName": "XXX", 
"lastName": "YYY" 
}, { 
"firstName": "AAA", 
"lastName": "BBB" 
}] 
+0

你可以创建一个扩展pojo类的存储库并且制定一个查询方法来给你想要的输出 –

回答

0

您可以创建一个存储库扩展POJO类,并制定一个查询方法,给你所需的输出

users.java

@Entity 
@Table(name = "USERS") 
@EntityListeners(UsersEntityListener.class) 
@NamedQueries({ 
    @NamedQuery(name = "User.findAll", query = "SELECT u FROM User u")}) 
public class User extends Domain implements Serializable { 

    private static final long serialVersionUID = 1L; 
    @Basic(optional = false) 
    @Column(name = "FIRST_NAME", nullable = false) 
    private String firstName; 
    @Basic(optional = false) 
    @Column(name = "LAST_NAME", nullable = false) 
    private String lastName; 
    @Column(name = "MIDDLE_NAME") 
    private String middleName; 
    @Basic(optional = false) 
    @Column(name = "GENDER", nullable = false) 
    private String gender; 
    @Basic(optional = false) 
    @Column(name = "MOBILE", nullable = false) 
    private String mobile; 
    @Basic(optional = false) 
    @Column(name = "EMAIL", nullable = false) 
    private String email; 
    @Basic(optional = false) 
    @Column(name = "USERNAME", nullable = false) 
    private String username; 
    @Basic(optional = false) 
    @Column(name = "PASSWORD", nullable = false) 
    private String password; 
    @Column(name = "URL") 
    private String url; 

    public User() { 
    } 

//*************Getters and Setters******************/ 
} 

UserRepository.java

@Repository 
@RepositoryRestResource 
    public interface UserRepository extends JpaRepository<User,Integer> { 

    @Query("select u.firstName,u.lastName from Users u ") 
     List<BuyingRequirement> find(); 

    } 

现在你可以直接使用此方法为:

@RestController 
@RequestMapping("/api/v1") 
public class xyz{ 

@Autowired 
UserRepository ur; 

@GetMapping(value = "/user") 
    public List<Users> getNameandLastName(){ 
     List user= ur.find(); 

     return user; 
    } 

} 

这会给以键值对所需的结果列表

+0

我不想使用存储库。 –

+0

你已经提到过Spring引导JPA,这就是它的实现。 –

0

你可以试试下面的代码:

import org.hibernate.internal.SessionImpl; 
import java.sql.Connection; 


Connection connection = entitymanager.unwrap(SessionImpl.class).connection(); 
PreparedStatement ps = connection.prepareStatement(procedure);` 

ResultSet rs = ps.executeQuery();