如何解决java.util.ArrayList 不能转换为类 [Ljava.lang.Object; <springboot 测试>
我目前正在测试我的 JPA @Query 并不断收到此错误
<br>
class java.util.ArrayList cannot be cast to class [Ljava.lang.Object; (java.util.ArrayList and [Ljava.lang.Object; are in module java.base of loader 'bootstrap')
<br>
会员实体
package org.morgorithm.frames.entity;
import com.sun.istack.Nullable;
import lombok.*;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
@ToString
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long mno;
private String name;
private String phone;
}
状态实体
package org.morgorithm.frames.entity;
import com.sun.istack.Nullable;
import lombok.*;
import javax.persistence.*;
@Entity
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
@ToString(exclude={"member","facility"})
public class Status extends BaseEntity{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long statusnum;
@ManyToOne(fetch=FetchType.LAZY)
private Member member;
@ManyToOne(fetch=FetchType.LAZY)
private Facility facility;
private double temperature;
private Boolean state;
}
MemberRepository
package org.morgorithm.frames.repository;
import org.morgorithm.frames.entity.Member;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
public interface MemberRepository extends JpaRepository<Member,Long> {
@Query("select m,s from Member m left join Status s ON s.member=m WHERE m.mno=:mno")
List<Object[]> getMemberWithStatus(@Param("mno") Long mno);
}
我想测试的是@Query 部分。
MemberRepositoryTests
package org.morgorithm.frames.repository;
import org.junit.jupiter.api.Test;
import org.morgorithm.frames.entity.Member;
import org.morgorithm.frames.entity.MemberImage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBoottest;
import org.springframework.test.annotation.Commit;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.UUID;
import java.lang.Object;
import java.util.stream.IntStream;
@SpringBoottest
public class MemberRepositoryTests {
@Autowired
private MemberRepository memberRepository;
@Autowired
private MemberImageRepository memberImageRepository;
@Test
public void testGetMemberByMno(){
Object result=memberRepository.getMemberWithStatus(100L);
Object[] arr=(Object[])result;
System.out.println("----------------------------*************************");
System.out.println(Arrays.toString(arr));
System.out.println("===================================");
}
}
我想测试这个 getMemberWithStatus
方法
但是得到上面的那些错误..
我认为问题是Object[] arr=(Object[])result;
这部分
我做错了什么??
哦,为了您的信息,我确实将一些测试数据放入了数据库
解决方法
通过如下更改我的代码来解决问题。
@Test
public void testGetMemberByMno(){
List<Object[]> result=memberRepository.getMemberWithStatus(100L);
List<Object> arr=Arrays.asList(result);
for(Object[] a:result){
System.out.println(Arrays.toString(a));
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。