假設有三類:我從一個類怎麼能轉換爲另一個類休眠
之一是:
@Entity
@Indexed
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.STRING)
@Table(name = "tbl_a")
public class A {
@Id
@DocumentId
@GeneratedValue(generator="rwSpecSeq")
@SequenceGenerator(name="rwSpecSeq", sequenceName="RW_SPEC_SEQ")
private int id;
private String sampleAttribute;
//Getters and Setters
}
@Entity
@DiscriminatorValue("b")
public class B extends A {
}
@Entity
@DiscriminatorValue("c")
public class C extends A {
}
如果,如果我再次想投一個對象被保存爲B的對象,然後或者將對象改爲C然後它給出類拋出異常。請告訴我如何在合併時在休眠中投射類。
我的做法是這樣的:
//Assuming that the object is C class' object.
A a = adminService.getA(request.getParameter("id"));
//before merging I did this
B b = (B)a;
adminService.save(b);
是。這本身不是休眠問題;這是一個Java問題。 –
它甚至不是一個Java問題,它是一個實現/設計問題 –