首页 > 解决方案 > Map Object Array to a Bean

问题描述

I am making an SQL query via JPA and getting a List of Object Arrays. I wish to map these Object Arrays into a bean.

For example, my query gives me the following output.

List<Object[]> list = // myWorkingJpaQuery;
// list is of length 2. 
// Each Object array always holds a Long in index 0, 
// a TimeStamp in index 1 and a String in index 2. 

Instead of reading these values and performing casting, I wish to map it to a class as follows:

class ExampleClass{
    //all these variables matches the aliases in myWorkingJpaQuery.
    Long id;
    TimeStamp ts;
    String name;
    // get set
}  

Tried to use the above class my changing the JPA methods return type and assigning it in the calling class as follows but it doesn't work.

List<ExampleClass> list = // myWorkingJpaQuery with List<ExampleClass> as return type;

Is there a way to do this? It is currently working fine if I stick to Object Array but just trying not to use Objects and castings. For reference, I am using Spring.

标签: java

解决方案


您的 ExampleClass 是否有构造函数?如果是,您应该能够执行以下操作:

List<ExampleClass> myList = new ArrayList<ExampleClass>();
List<Object[]> list = // myWorkingJpaQuery;
for (int i = 0; i < list.size(); i++) {
        ExampleClass obj = new ExampleClass(list.get(i)[0],list.get(i)[1],list.get(i)[2]);
        myList.add(obj);
    }

你完成了


推荐阅读