我正在开发Spring Boot Rest Api。我有一门课叫"Wypozyczenie",还有一门课叫"WypozyczenieDTO"。我想从类Wypozyczenie(避免嵌套对象)中提取一些信息,并根据WypozyczenieDTO的信息返回数据。我试过DozerBeanMapper和ModelMapper,两者都没有正确转换我的对象。所有的值都是空或零!我正在调试,在应该做我的转换的行不工作。以下是发生转换的函数:
private WypozyczenieDto convertToDto(Wypozyczenie wypozyczenie) {
WypozyczenieDto wypozyczenieDto = mDozerBeanMapper.map(wypozyczenie, WypozyczenieDto.class);
return wypozyczenieDto;
}
我正在调试,Wypozyczenedto中的所有参数都是null或零。
以下是Wypozyczenie和WypozyczenieDto类(不含getter和setter):
public class WypozyczenieDto {
private Long id;
@JsonProperty("planowana_data_rozpoczecia")
private LocalDateTime planowanaDataRozpoczecia;
@JsonProperty("planowana_data_zakonczenia")
private LocalDateTime planowanaDataZakonczenia;
@JsonProperty("faktyczna_data_rozpoczecia")
private LocalDateTime faktycznaDataRozpoczecia;
@JsonProperty("faktyczna_data_zakonczenia")
private LocalDateTime faktycznaDataZakonczenia;
@JsonProperty("przebieg_rozpoczecia")
private int przebiegRozpoczecia;
@JsonProperty("przebieg_zakonczenia")
private int przebiegZakonczenia;
@JsonProperty("id_pracownika")
private Long idPracownika;
@JsonProperty("id_pojazdu")
private Long idPojazdu;
@JsonProperty("status_wypozyczenia")
private Wypozyczenie.statusyWypozyczenia statusWypozyczenia;
这是Wypozyczenie类:
@Entity
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Wypozyczenie {
//ENUM Type of statusyWypozyczenia
public enum statusyWypozyczenia{
ZAREZERWOWANE, WYPOZYCZONE, ZAKONCZONE;
public static final EnumSet<statusyWypozyczenia> allStatusyWypozyczenia = EnumSet.allOf(statusyWypozyczenia.class);
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(columnDefinition = "datetime2")
@JsonProperty("planowana_data_rozpoczecia")
private LocalDateTime planowanaDataRozpoczecia;
@Column(columnDefinition = "datetime2")
@JsonProperty("planowana_data_zakonczenia")
private LocalDateTime planowanaDataZakonczenia;
@Column(columnDefinition = "datetime2")
@JsonProperty("faktyczna_data_rozpoczecia")
private LocalDateTime faktycznaDataRozpoczecia;
@Column(columnDefinition = "datetime2")
@JsonProperty("faktyczna_data_zakonczenia")
private LocalDateTime faktycznaDataZakonczenia;
@JsonProperty("przebieg_rozpoczecia")
private int przebiegRozpoczecia;
@JsonProperty("przebieg_zakonczenia")
private int przebiegZakonczenia;
@ManyToOne(fetch=FetchType.LAZY)
@JsonManagedReference
private Pracownik pracownik;
@ManyToOne(fetch=FetchType.LAZY)
@JsonManagedReference
private Pojazd pojazd;
@Enumerated
@Column(columnDefinition = "smallint")
@JsonProperty("status_wypozyczenia")
private statusyWypozyczenia statusWypozyczenia;
@OneToMany(mappedBy = "wypozyczenie")
@JsonBackReference
private List<CzynnoscSerwisowa> czynnosciSerwisowe;
@OneToMany(mappedBy = "wypozyczenie")
@JsonBackReference
private List<CzynnoscEksploatacyjna> czynnosciEksploatacyjne;
这是主应用程序的主应用程序,您可以看到我如何初始化bean:
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class ApiBdCarRentApplication {
@Bean
public DozerBeanMapper mDozerBeanMapper() {
return new DozerBeanMapper();
}
@Bean
public ModelMapper modelMapper() {
return new ModelMapper();
}
public static void main(String[] args) {
System.out.println(Integer.getInteger("4"));
SpringApplication.run(ApiBdCarRentApplication.class, args);
}
}
这是Wypozyczenia类的控制器:
@RequestMapping("/wypozyczenia")
@RestController
public class WypozyczenieController {
private WypozyczenieService mWypozyczenieService;
private DozerBeanMapper mDozerBeanMapper;
@Autowired
public WypozyczenieController(WypozyczenieService wypozyczenieService, DozerBeanMapper dozerBeanMapper) {
mWypozyczenieService = wypozyczenieService;
mDozerBeanMapper = dozerBeanMapper;
}
@GetMapping("")
public List<WypozyczenieDto> getAllWypozyczenia(){
List<Wypozyczenie> wypozyczenia = mWypozyczenieService.getAllWypozyczenia();
return wypozyczenia.stream()
.map(wypozyczenie -> convertToDto(wypozyczenie))
.collect(Collectors.toList());
}
private WypozyczenieDto convertToDto(Wypozyczenie wypozyczenie) {
WypozyczenieDto wypozyczenieDto = mDozerBeanMapper.map(wypozyczenie, WypozyczenieDto.class);
return wypozyczenieDto;
}
请帮帮我。到底是怎么回事?为什么它甚至不能在简单的转换级别上工作(我已经在其他类上尝试过了)。
我只是试着用BeanUtils的方法做了下面的事情。Spring框架的copyProperties
。看起来很好用。无法使用LocalDateTime
进行测试,因为我没有Java 8。尝试使用日期
public class BeanCopyTest{
private static WypozyczenieDto convertToDto(Wypozyczenie wypozyczenie) {
WypozyczenieDto wypozyczenieDto = new WypozyczenieDto();
BeanUtils.copyProperties(wypozyczenie,wypozyczenieDto);
return wypozyczenieDto;
}
public static void main(String[] args){
Wypozyczenie wypozyczenie = new Wypozyczenie();
wypozyczenie.setId((long)1);
wypozyczenie.setPrzebiegRozpoczecia(2);
wypozyczenie.setPrzebiegZakonczenia(3);
wypozyczenie.setPlanowanaDataRozpoczecia(new Date());
WypozyczenieDto wypozyczenieDto = convertToDto(wypozyczenie);
System.out.println("Id = "+wypozyczenieDto.getId());
System.out.println("Rozpoczecia = "+wypozyczenieDto.getPrzebiegRozpoczecia());
System.out.println("Zakonczenia = "+wypozyczenieDto.getPrzebiegZakonczenia());
System.out.println("PlanowanaDataRozpoczecia = "+wypozyczenieDto.getgetPlanowanaDataRozpoczecia());
}
}
打印以下结果。
Id = 1
Rozpoczecia = 2
Zakonczenia = 3
PlanowanaDataRozpoczecia = Fri Feb 02 11:09:48 IST 2018
我在Spring服务中使用推土机。如何使用JUnit和Mockito将注入到已测试的服务中? 我的java类(如果简化)看起来像: 使用JUnit 4 Mockito Hamcrest的测试类如下所示: 问题在于模拟的Dozer实例没有按预期映射对象——默认情况下,Mockito存根返回空或空对象。如果我从测试中删除注释,它会抛出NPE!
伙计们,你们能帮帮忙吗 所以我正在尝试显示我从后端获得的数据,但似乎 *ngFor 不起作用,只想返回启用的大小如何使用 ngIf 这是模板 这是我得到的数据(我正在循环的部分) 所以我需要显示每个尺寸的价格,然后减去折扣,如果未启用,则显示隐藏该尺寸。
我正在使用Tomcat8作为Spring Boot项目的一部分,我的acceptCount设置似乎不起作用。我的服务器不是只接受300个连接,而是接受了我扔给它的近1000个连接,当然同时处理的连接不超过200个。 Tomcat文档在AcceptCount上似乎很清楚:“当所有可能的请求处理线程都在使用时,传入连接请求的最大队列长度。当队列满时接收的任何请求都将被拒绝。”但显然这不会发生。 当然还
我正在做一个窗口,有一个大的文本区域和一个小的文本区域下。这是我到目前为止得到的: 这是我的代码: 我如何使较大的textarea部分透明,这样我就可以看到背景,我如何移动“比如说:”到较小的textarea前面?
ModelMapper,Java Object Mapping 工具,类似BeanUtils,效率略低于Orika,但是内部策略丰富,配置方式更舒适。
目前,我正在尝试将dto映射到一个也包含LocalDate属性的类。只是我在这里没有成功,本地日期字段始终保持为空。因此,我构建了一个简短的示例,其中我遵循Modelmapper提供的非常有用的提示,将字符串转换为LocalDate,因此我有一个Modelmapper类,如下所示: 此外,为了可读性,我有一个POJO,它只有两个字段,一个id和一个本地日期(不带getter和setter)。 我创