我有一个springboot项目,为了执行请求,我正在连接到我的mysql数据库。我有一个实体ExportBatch:
@Entity(name = "Exportbatch")
@Table(name = "exportbatch")
public class Exportbatch
{
@EmbeddedId
private ExportbatchId id;
@Column(name = "container")
private String container;
@Column(name = "serverurl")
private String serverURL;
@Column(name = "owner")
private String owner;
@Column(name = "batchlastupdate")
private String batchlastupdate;
@Column(name = "size")
private int size;
public Exportbatch()
{
}
public Exportbatch(ExportbatchId id, String container, String serverURL, String owner, String date, int size)
{
this.id = id;
this.container = container;
this.serverURL = serverURL;
this.owner = owner;
this.batchlastupdate = date;
this.size = size;
}
public ExportbatchId getId()
{
return id;
}
public void setId(ExportbatchId id)
{
this.id = id;
}
public String getContainer()
{
return container;
}
public void setContainer(String container)
{
this.container = container;
}
public String getServerURL()
{
return serverURL;
}
public void setServerURL(String serverURL)
{
this.serverURL = serverURL;
}
public String getOwner()
{
return owner;
}
public void setOwner(String owner)
{
this.owner = owner;
}
public String getBatchlastupdate()
{
return batchlastupdate;
}
public void setBatchlastupdate(String batchlastupdate)
{
this.batchlastupdate = batchlastupdate;
}
public int getSize()
{
return size;
}
public void setSize(int size)
{
this.size = size;
}
public String toString()
{
String string = "project name: " + this.id.getProjectname() + "\n" + "building id: " + this.id.getBuildingId()
+ "\n" + "container id: " + this.container + "\n" + "hemis url: " + this.serverURL + "\n"
+ "lastTimeUpdate: " + this.batchlastupdate;
return string;
}
@Embeddable
public class ExportbatchId implements Serializable
{
private static final long serialVersionUID = 1L;
@Column(name = "projectname")
private String projectname;
@Column(name = "buildingid")
private String buildingId;
@Column(name = "timestamp")
private Timestamp timestamp;
public ExportbatchId(String projectname, String buildingId, Timestamp timestamp)
{
this.projectname = projectname;
this.buildingId = buildingId;
this.timestamp = timestamp;
}
public ExportbatchId()
{
}
public String getProjectname()
{
return projectname;
}
public void setProjectname(String projectname)
{
this.projectname = projectname;
}
public String getBuildingId()
{
return buildingId;
}
public void setBuildingId(String buildingId)
{
this.buildingId = buildingId;
}
public Timestamp getTimestamp()
{
return timestamp;
}
public void setTimestamp(Timestamp timestamp)
{
this.timestamp = timestamp;
}
}
我在ExportBatchRepository中定义了一个新方法:
public interface ExportbatchRepository extends JpaRepository<Exportbatch, ExportbatchId>
{
@Query(value = "select id.buildingId, id.projectname, id.timestamp, container, serverURL, owner, batchlastupdate, size, max(timestamp) from Exportbatch group by id.buildingId")
List<Exportbatch> findlatest();
Page<Exportbatch> findAll(Pageable pageable);
}
在我的控制器里,我是这样做的:
@RestController
public class Controller
{
@Autowired // This means to get the bean called userRepository
// Which is auto-generated by Spring, we will use it to handle the data
private ExportbatchRepository exportbatchRepository;
@RequestMapping("/getlastbatchsproblemes")
public void getbatchinfo()
{
try
{
List<Exportbatch> list = exportbatchRepository.findlatest();
for (Exportbatch exportbatch : list)
{
// System.out.println(exportbatch.getBatchlastupdate());
System.out.println(exportbatch.toString());
}
System.out.println(list.size());
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
当我调用“/GetLastBatchsProblemes”时会遇到这个异常:java.lang.ClassCastException:[Ljava.lang.Object;不能强制转换为Example.Domain.ExportBatch。
为什么我会得到这个例外,有人能帮我吗?
我认为问题出在您的查询中,请记住jpql要求您在表中加上一个别名,并且该别名应该在每个字段中使用,请尝试以下操作:
@Query(value = "select ex.id.buildingId, ex.id.projectname, ex.id.timestamp, ex.container, ex.serverURL, ex.owner, ex.batchlastupdate, ex.size, max(ex.id.timestamp) from Exportbatch ex group by ex.id.buildingId")
List<Exportbatch> findlatest();
把注意力放在前任身上。在检索的每个字段的开始,并作为from部分中的别名。
我不能在我的服务课上用我的积垢。我可以创建存储库,但当我将其自动连接到我的服务类时,会出现以下错误: com中构造函数的参数0。测验服务testService需要“com”类型的bean。测验存储库。找不到TestRepository“”。 行动: 考虑定义COM类型的bean。测验存储库。配置中的TestRepository。 这对许多人来说似乎是一个大问题。我尝试了各种东西,如@Compone
我与SpringBoot和JPA合作。我收到一个无法完成的错误。 这是我的主要课程: 这是我的班级失败的原因: 这是类: 这是错误消息: 错误创建bean的名称'请求LoggerImpl':注入自动生成的依赖失败; 无法自动关联字段:专用com。存储库。请求logdao.com。记录器。impl。RequestLoggerImpl。请求logdao;嵌套的异常是org。springframewor
搜索仓库和镜像 你可以使用 Docker 来搜索所有公开可用的仓库和镜像。 $ docker search ubuntu 这将通过 Docker 提供的关键字匹配来显示您可用的仓库列表。 私有仓库将不会显示到仓库搜索结果上。你可以通过 Docker Hub 的简况页面来查看仓库的状态。 仓库 你的 Docker Hub 仓库有许多特性。 stars 你的仓库可以用星被标记,你也可以用星标记别的仓
问题内容: 我正在尝试为视图创建JPA实体。在数据库层中,表和视图应该相同。 但是,问题开始出现并且有两个方面: 尝试设置正确的注释时。视图没有与之关联的主键,但是如果没有对字段进行适当的注释,则会在运行时引发抛出异常。 Spring Boot 接口定义要求类型为extends ,这避免了由于视图实体上缺少ID 而不能用作替代方法。 与缺少主键的视图进行交互的正确JPA / SpringBoot
在我的保险库和领事整合我有以下秘密引擎enble 以以下错误结束 待覆盖的Vault-Value其他:待覆盖的Vault-Value已成功连接到数据库 在上下文初始化期间-取消刷新尝试:org.springframework.beans.factory.BeanCreationException:创建名为“demo application”的bean时出错:调用init方法失败;嵌套异常为java
我正在尝试实现一个简单的REST服务,该服务基于具有Spring启动和Spring数据Rest的JPA存储库。(请参阅此教程)如果将以下代码与 gradle 一起使用,则运行良好: 为了让事情变得更简单,我使用Spring boot CLI(“Spring run”命令)尝试了相同的代码。 不幸的是,这似乎不起作用@RepositoryRestResource似乎无法像@RestControlle