如何在 Java 中修复 java.lang.ClassCastException

How to fix java.lang.ClassCastException in Java

我使用 3.x 版本的休眠,我有一个对象 X 继承自父对象 Y。我还有另一个对象 Z,它与对象 X 的关系如下 X OneToMany Z .所以对象 Z 将包含对象 X。

我看了很多问题,但没有回答我的问题。

在我的 XHTML 中,我在下拉列表中选择了 X 对象,然后检索它的 ID 以加载对象,在我的 bean 中,我检索此 ID 以加载 X 对象插入是通过插入具有空值的对象 X 来完成的.当我尝试通过调用我的服务来显示对象是否已恢复时,出现此错误

An Error Occurred:

java.lang.ClassCastException: ma.controle.gestion.modele.Parent_$$_javassist_6 cannot be cast to ma.controle.gestion.modele.Activite

这是父对象 ( Y )

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="TYPE_OBJET")
@DiscriminatorValue("PARENT")
public class Parent implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue
private Long idt_parent;
private String nom;
private String description;
// Getters Setters
}

这是继承自 Y ( X ) 的对象

@Entity
@DiscriminatorValue("ACTIVITE")
public class Activite extends Parent implements Serializable {

private static final long serialVersionUID = 1L;

private String code_sa;

// The mapping of the object Z

@OneToMany(mappedBy="activite",cascade=CascadeType.REMOVE,  orphanRemoval = true)
private Collection<Affectation_Activite> affectation_Activites;

// Getters , setters and construct

}

这是模型(对象 Z)

@Entity
public class Affectation_Activite implements Serializable{

/**
 * 
 */
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue
private Long idt_affectation_activite;
private Date dateDebut;
private Date dateFin;


@ManyToOne
@JoinColumn(name="idt_parent")
private Activite activite;


// Getters, setters and construct 
}

这是我的 bean 的功能保存

public void save(ActionListener e){




    Activite activite=(Activite)parentService.findParentById(idt_parent);


    System.out.println("Activite nom ====> " + activite .getNom() + " et la description" + activite.getDescription() );

    affectationActivite.setActivite(activite);

    affectationActiviteService.addAffectation(affectationActivite);


}

解决方案:我认为这是因为当您使用父服务时,它返回一个没有 Active class 值的新父服务。您应该改用 Active 服务

与@Ronce96相关