我在将延迟加载的对象作为 JSON 发送以响应 Spring Boot 中的 REST 请求时出错。
当我从浏览器请求获取 parentTree 并调用 get 方法来获取版本以测试延迟加载并返回版本但在此过程中我收到下面提供的错误。
以下是我的模型:
父树.java
@Entity
@Data
@Table(name = "parent_tree_temp")
public class ParentTreeTemp {
@Id
private Long id;
private String name;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "version_id")
private Version versionId;
}
Run Code Online (Sandbox Code Playgroud)
版本.java
@Entity
@Data
public class Version {
@Id
private Long id;
private String name;
@Column(name = "gl_type")
private String glType;
@Column(name = "version_type")
private String versionType;
@Column(name = "effective_date")
private Date effectiveDate;
}
Run Code Online (Sandbox Code Playgroud)
控制器.java
@GetMapping("/ParentTree")
public Version parentTrees() { …Run Code Online (Sandbox Code Playgroud) 我有一个简单的测试用例,我在 Spring Boot 应用程序中使用 Mockito。
用户操作.java
...
@Autowired
Validator nameValidator;
private boolean userOperation(String name) {
NameStats nameStats = nameValidator.validate(name);
if (!nameStats.isSuccess()) {
throw new Exception();
}
return true;
}
...
Run Code Online (Sandbox Code Playgroud)
验证器.java
public NameStats validate(String name)
{
NameStats nameStats = new NameStats();
// code goes here
return nameStats;
}
Run Code Online (Sandbox Code Playgroud)
测试用例.java
...
@SpringBootTest
@RunWith(SpringRunner.class)
public class ImportFileOperationTest {
@Mock
Validator nameValidator;
@Mock
NameStats nameStats;
@InjectMocks
UserOperation operation;
@Test
public void ConnectorDelegate0Test() {
Mockito.when(nameValidator.validate(any(String.class))).thenReturn(nameStats);
Mockito.when(nameStats.isSuccess()).thenReturn(true);
operation.userOperation(restConsumerRequest);
}
}
...
Run Code Online (Sandbox Code Playgroud)
错误 :
对于上述测试用例,我收到 NullPointerException。在跟踪时,我发现测试中的以下代码行返回空值。 …
我正在尝试在 Java 8 中学习流媒体。以下是我的代码:
主程序
public class Main {
public static void main(String[] args) {
Person person = new Person("FirstName", "LastName");
List<Person> personList = new ArrayList<>();
personList.add(person);
Place place = new Place("name", "country");
List<Place> placeList = new ArrayList<>();
placeList.add(place);
List<List<Object>> objects = new ArrayList<>();
objects.add(Collections.singletonList(personList));
objects.add(Collections.singletonList(placeList));
List<Object> persons = objects.get(0);
List<String> firstNames = persons.stream()
.map(o -> ((Person)o).getFirstName())
.collect(Collectors.toList());
firstNames.forEach(System.out::println);
}
}
Run Code Online (Sandbox Code Playgroud)
人.java
@Data
public class Person {
String firstName;
String lastName;
public Person(String firstName, String lastName) {
setFirstName(firstName);
setLastName(lastName);
} …Run Code Online (Sandbox Code Playgroud) java ×2
spring-boot ×2
casting ×1
hibernate ×1
java-8 ×1
java-stream ×1
jpa ×1
mockito ×1
spring-web ×1
unit-testing ×1