【发布时间】:2021-12-23 10:18:09
【问题描述】:
我正在尝试让我的 Spring MySQL 后端通过 AXIOS 返回一个多表视图(不是单个表)到我的 REACT 前端。
我正在使用 POSTMAN (http://localhost:8080/api/v1/cpysiteassetview) 测试我的后端
我收到来自 SPRING 的错误消息和来自 POSTMAN(下)的长错误消息。
我很接近,但在某个地方出错了,我希望对此更熟悉的人可以阐明并解释我哪里出错了。
这里是 VIEW\MODEL\REPOSITORY\CONTROLLER。
...
CREATE
ALGORITHM = UNDEFINED
DEFINER = `root`@`localhost`
SQL SECURITY DEFINER
VIEW `cpysiteasset` AS
SELECT
`cpymaster`.`cpymasterid` AS `cpymasterid`,
`cpymaster`.`cpymastercode` AS `cpymastercode`,
`cpymaster`.`cpymastername` AS `cpymastername`,
`sitemaster`.`sitemasterid` AS `sitemasterid`,
`sitemaster`.`sitemastercode` AS `sitemastercode`,
`sitemaster`.`sitemastername` AS `sitemastername`,
`assets`.`assetsid` AS `assetsid`,
`assets`.`assetsidentifier` AS `assetsidentifier`,
`assets`.`assetsname` AS `assetsname`
FROM
((`cpymaster`
JOIN `sitemaster` ON = `cpymaster`.`cpymasterid`)))
JOIN `assets` ON ((`assets`.`sitemaster_sitemasterid` = `sitemaster`.`sitemasterid`)))
ORDER BY `sitemaster`.`sitemastercode` , `assets`.`assetsidentifier`
//MODEL
package net.javaguides.springboot.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Immutable;
@Entity
@Immutable
@Table(name = "`cpysiteassetview`")
public class CpySiteAssetView {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private int cpymasterid;
private String cpymastercode;
private String cpymastername;
private int sitemasterid;
private String sitemastercode;
private String sitemastername;
private int assetsid;
private String assetsidentifier;
private String assetsname;
@Column(name = "cpymasterid")
public int getCpymasterid() {
return cpymasterid;
}
@Column(name = "cpymastercode")
public String getCpymastercode() {
return cpymastercode;
}
@Column(name = "cpymastername")
public String getCpymastername() {
return cpymastername;
}
@Column(name = "sitemasterid")
public int getSitemasterid() {
return sitemasterid;
}
@Column(name = "sitemastercode")
public String getSitemastercode() {
return sitemastercode;
}
@Column(name = "sitemastername")
public String getSitemastername() {
return sitemastername;
}
@Column(name = "assetsid")
public int getAssetsid() {
return assetsid;
}
@Column(name = "assetsidentifier")
public String getAssetsidentifier() {
return assetsidentifier;
}
@Column(name = "assetsname")
public String getAssetsname() {
return assetsname;
}
}
//Repository
package net.javaguides.springboot.repository;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import net.javaguides.springboot.model.CpySiteAssetView;
@Repository
public interface CpySiteAssetViewRepository1 extends JpaRepository<CpySiteAssetView, Long>{
public List<CpySiteAssetView> findAll();
}
//Controller
package net.javaguides.springboot.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import net.javaguides.springboot.model.CpySiteAssetView;
import net.javaguides.springboot.repository.CpySiteAssetViewRepository1;
@CrossOrigin(origins = "http://localhost:3000")
@RestController
@RequestMapping("/api/v1/")
public class CpySiteAssetViewController {
@Autowired
private CpySiteAssetViewRepository1 cpySiteAssetViewRepository1;
//get all
@GetMapping("/cpysiteassetview")
public List<CpySiteAssetView> getAllCpySiteAssetView(){
return cpySiteAssetViewRepository1.findAll();
}
}
...
来自 Spring 的错误消息: java.sql.SQLSyntaxErrorException:“字段列表”中的未知列“cpysiteass0_.id”
邮递员的错误信息(第一部分): "error": "内部服务器错误", “trace”:“org.springframework.dao.InvalidDataAccessResourceUsageException:无法提取 ResultSet;SQL [n/a];嵌套异常是 org.hibernate.exception.SQLGrammarException:无法提取 ResultSet\r\n\tat org.springframework。 orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:259)\r\n\tat org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:233)\r\n\tat org. springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551)\r\n\tat org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)\r\n\tat org.springframework。 dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)\r\n\tat org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(Per
【问题讨论】:
-
我看到你已经回答并调试了同样的问题。我希望你能在这里伸出援手。预先感谢您的关注。 @Janitha Madushan
-
我看到你已经回答并调试了同样的问题。我希望你能在这里伸出援手。预先感谢您的关注。 @José Luis Condori Jara
-
我看到你已经回答并调试了同样的问题。我希望你能在这里伸出援手。预先感谢您的关注。 @davidxxx
标签: mysql reactjs spring-mvc view axios