java - java - 如何在java spring boot中获取值而不是对象
问题描述
所以我想知道如何获取存储在 Mysql 中的值而不是对象名称。
当我运行我得到的代码时:
[org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap@5ba6132b, org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap@28264619, org.springframework.data.jpa.repository .query.AbstractJpaQuery$TupleConverter$TupleBackedMap@6ab78994, org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap@50dd821f, org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap@3b89ec , org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap@21856382, org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap@7728a50f]
代码如下:
@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;
}
这是我的类别代码。
package kr.co.ds.datastation.dsapi.repository;
public interface CategoryProjection {
public String getLev1();
public String getLev2();
public String getLev3();
public String getLev4();
}
这是我的CategoryProjection
代码。
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<CategoryProjection> findByCategory();
}
这是我的CategoryRepository
代码。
@RestController
@RequestMapping(value = "/Category")
@Slf4j
public class CategoryController {
@Autowired CategoryRepository categoryRepository;
@RequestMapping(value = "/all", method = RequestMethod.GET)
@ResponseBody
public String getCategoryList() {
List<CategoryProjection> all= this.categoryRepository.findByCategory();
return all.toString();
//log.info(query);
//return "Test";
}
}
这是我的CategoryController
代码。
private void mysql2() {
this.categoryRepository.findByCategory();
}
这是我的应用程序代码。
解决方案
将以下代码添加到您的类别 POJO 类中以将对象映射到值。此外,在您的课程中添加 getter setter 也是一个好习惯。
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Category category = (Category) o;
if (bot.id == null || id == null) {
return false;
}
return Objects.equals(id, bot.id);
}
@Override
public int hashCode() {
return Objects.hashCode(id);
}
@Override
public String toString() {
return "{" +
"id=" + id +
", name='" + name + "'" +
", parent='" + parent + "'" +
'}';
}
推荐阅读
- angularjs - Quill 编辑器和 AngularJS 集成
- sql-server - 根据日期范围获取所有记录
- python - 当我在 Python 中单击图表中的系列时如何显示标签
- python - Python json.dumps 格式化
- java - 同时添加和排序到 ArrayList
- java - 为什么我的子实体在外键/主键中有一个空值?
- r - 标记组内重复测量的异常值(假设有数千个组)
- python-3.x - 以下数据是否为 ASCII 格式?如果不是,我将如何使用 python3 将其转换为 ASCII 字符
- c - C 中的循环意外运行
- python - 停止 pd.read_html 将类似科学记数法的字符串“0E10”转换为浮点 0.0