如何将值从一个类对象保存到另一类对象



我有两个类(Pojos)名称CCD_ 1和CCD_,我想做的是,我必须从Bookdetails表(Soldbookdetails.java)中获取数据,并将相同的数据保存到我的Soldbookdetails表中(Soldbookdetails.java)。

ActionClass.java

private Double[] id;//With getter and setter
private Double[] quantity;  //With getter and setter
Bookdetails book=new Bookdetails();//pojos,//With getter and setter
Soldbookdetails sbook=new Soldbookdetails();//pojos,//With getter and setter 
BookdetailsDAO dao=new BookdetailsDAO(); 
SoldBooksTransactionDAO dao2=new SoldBooksTransactionDAO(); 
------------

(注意:我的两个pojo是相同的,只是它们的类名不同)

我的问题:我无法将记录从Bookdetails.java保存到Soldbookdetails.java。(请参阅我上面的ActionClass.java类,在execute方法中,我提到了ERRROR)。

通过Bookid获取记录后,我无法将该记录保存到我的Soldbookdetails.java中。

请帮我解决我的问题。

您的saveSoldbooks(Soldbookdetails s)方法将Soldbookdetails.java0的对象作为参数,但您正在传递Bookdetails类的对象。

您可以添加一个方法,将Bookdetails对象的属性复制到Soldbookdetails对象(没有id字段)。然后,您应该尝试使用现有方法保存Soldbookdetails的对象。

虽然将已售出的书籍和书籍保存在单独的表中是(IMO)良好的性能问题,但我认为您不需要为它们创建单独的IDENTIAL类。考虑将您的类BookDetails作为一个抽象,并将其注释为MappedSuperclass:

@MappedSuperclass
public abstract class BookDetails{
// fields
// getters
// setters
}
@Entity
@Table(name="SoldBooks")
public class SoldBookDetails extends BookDetails{
// Currently blank
}

@Entity
@Table(name="BookDetails")
public class TradingBookDetails extends BookDetails{
// Currently blank
}

虽然目前的类是相同的,但将来您可能会决定创建其他书籍类型(如用于购买要存储的书籍或以客户的方式购买书籍的其他表和类),当然,对于SoldBooks和其他类型,可能会出现不同的逻辑,在这种情况下,这种"抽象"将简化维护。

我目前看到的对你保存SoldBook的唯一更改是更改它的参数类型或在方法体中提供类型检查,只要参数类型是BookDetails,你就可以在函数中传递从它派生的任何变量-因此,TraidingBookDetails、SoldBookDetails等。(所需的更改取决于你在这个方法中的逻辑和DAO本身)。

最新更新