Перемещение списка элементов разных объектов - PullRequest
1 голос
/ 09 октября 2019

Привет, ребята, я настоящий нуб и дилетант. Мне нужна помощь о том, как скопировать элементы из бронирования в список бронирования. Скажем, у меня есть класс Java с частично разными полями. Как это можно сделать?

List<Booking> booking= new ArrayList<Booking>();
List<BookingHist> bookinghist = new ArrayList<BookingHist>();

Это класс бронирования ниже. Здесь единственные поля между этими двумя классами состоят в том, что у BookingHist есть столбец «extras».

public class Booking implements Serializable {

        @Temporal(TemporalType.TIMESTAMP)
        @Column(name = "dt")
        private Date dt = new Date();
        @Column(name = "bookingname")
        private String bookingname;

        public Booking(Date dt, String bookingname) {

            this.dt=dt;
            this.bookingname=bookingname;              
        }

        public Date getDt() {
            return Dt;
        }

        public void setDt(Date Dt) {
            this.Dt = Dt;
        }

        public String getBookingname() {
            return Bookingname;
        }

        public void setBookingname(String Bookingname) {
            this.Bookingname = Bookingname;
        }
    }

Это класс BookingHist.

public class BookingHist implements Serializable {

        @Temporal(TemporalType.TIMESTAMP)
        @Column(name = "dt")
        private Date dt = new Date();
        @Column(name = "bookingname")
        private String bookingname;
        @Column(name = "createdDt")
        private Date createdDt;

        public BookingHist(Date dt, String bookingname, Date createdDt) {

            this.dt=dt;
            this.bookingname=bookingname;
            this.createdDt=createdDt;
        }

        public Date getDt() {
            return Dt;
        }

        public void setDt(Date Dt) {
            this.Dt = Dt;
        }

        public String getBookingname() {
            return Bookingname;
        }

        public void setBookingname(String Bookingname) {
            this.Bookingname = Bookingname;
        }

        public Date getCreatedDt() {
            return createdDt;
        }

        public void setCreatedDt(Date createdDt) {
            this.createdDt = createdDt;
        }

    }

Ответы [ 2 ]

1 голос
/ 09 октября 2019

Если у вас есть конструктор всех аргументов в BookingHist, как показано ниже

public BookingHist(Date dt, String bookingname, String extras) {

     this.dt=dt;
     this.bookingname=bookingname;
     this.extras=extras;
 }

Тогда вы можете преобразовать Booking в BookingHist, используя поток

List<BookingHist> bookinghist = booking.stream()
                                       .map(b-> new BookingHist(b.getDate(), b.getBookingname(), "extra value");
                                       .collect(Collectors.toList());
0 голосов
/ 09 октября 2019

Вы можете использовать MapStruct MapStruct

Пример Пример карты Entity для Dto

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...