当我运行代码时,我得到了对象
[[Ljava.lang.Object;@8f17f7c, [Ljava.lang.Object;@6c0a4f24,
[Ljava.lang.Object;@be4886c, [Ljava.lang.Object;@1760591d,
[Ljava.lang.Object;@14e9ce12, [Ljava.lang.Object;@2aa4c0c4,
[Ljava.lang.Object;@5ac9a14]
所以..我想得到字符串结果,请在下面教我方法
[Dataset_info(Ds_id=1111, ds_code=a, ds_name=e, ds_category=g, ds_stru=q, insert_ddtt=null, update_ddtt=null), Dataset_info(Ds_id=11111, ds_code=z, ds_name=eww, ds_category=g, ds_stru=q, insert_ddtt=null, update_ddtt=null)]
@Data
@Entity
@Table(name = "category")
@DynamicInsert
@DynamicUpdate
@NoArgsConstructor
@AllArgsConstructor
public class Category {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "category_id", columnDefinition = "INT(11)")
private Integer Category_id;
@Column(name = "name", columnDefinition = "VARCHAR(20)")
private String name;
@Column(name = "parent", columnDefinition = "int(11)")
private Integer parent;
}
这是我的类别代码
@RestController
@RequestMapping(value = "/Category")
@Slf4j
public class CategoryController {
@Autowired CategoryRepository categoryRepository;
@RequestMapping(value = "/all", method =
RequestMethod.GET)
@ResponseBody
public String getCategoryList() {
List < Object[] > all =
this.categoryRepository.findByCategory();
return all.toString();
//log.info(query);
//return "Test";
}
}
这是我的 CategoryController 代码
import java.util.List;
@Repository
public interface CategoryRepository extends
JpaRepository < Category, Integer > {
public static final String FIND_PROJECTS = "SELECT t1.name
AS lev1,
t2.name as lev2,
t3.name as lev3,
t4.name as lev4
FROM category AS t1 LEFT JOIN category AS t2 ON t2.parent =
t1.category_id LEFT JOIN category AS t3 ON t3.parent =
t2.category_id LEFT JOIN category AS t4 ON t4.parent =
t3.category_id WHERE t1.name = 'ROOT'
";
@Query(value = FIND_PROJECTS, nativeQuery = true)
public List < Object[] > findByCategory();
}
这是我的类别存储库代码
private void mysql2() {
this.categoryRepository.findByCategory();
}
这是我的应用程序运行代码
所以请教我,我渴望知道路 谢谢
最佳答案
您可以使用投影来包含这些值:
public interface CategoryProjection {
public String getLev1();
public String getLev2();
public String getLev3();
public String getLev4();
}
然后使用 Projection with Repository 接口(interface):
//...
@Query(value = FIND_PROJECTS, nativeQuery = true)
public List<CategoryProjection> findByCategory();
如何访问投影中的值
Because It's a interface, only have getter method.
- 使用循环(foreach 循环、fori 循环...)
例如:
List<CategoryProjection> list = categoryRepository.findByCategory();
list.forEach(c -> {
System.out.println(c.getLev1() + " - " + c.getLev2());
});
// loop i
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getLev1() + " - " + list.get(i).getLev2());
}
- 使用索引
例如:获取索引 0 中的对象类别
String lev1 = list.get(0).getLev1();
关于java - 如何将对象更改为字符串(java spring boot),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58639920/