我将选择@Embeddable Certification中的所有列。但是我不能选择它。如何选择可嵌入的类。
@Entity
public class Department implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@ElementCollection
@CollectionTable(name = "Certification", joinColumns = {@JoinColumn(name="user_id")})
private List<Certification> certifications = new ArrayList<Certification>();
public List<Certification> getCertifications() {
return certifications;
}
public void setCertifications(List<Certification> certifications) {
this.certifications = certifications;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
.....@嵌入式类认证
@Embeddable
public class Certification{
private String name;
private String certArt;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCertArt() {
return certArt;
}
public void setCertArt(String certArt) {
this.certArt = certArt;
}
......如果我运行ResultService,我会得到以下异常:
原因: java.lang.IllegalArgumentException:在EntityManager中创建查询时出现异常:异常描述:编译查询时出错从证书中选择c。未知实体类型证书。
如何选择@Embeddable?
发布于 2013-05-21 23:28:35
您需要通过实际的实体类(即Department )来检索Certification。一个查询示例可能如下所示:
select cer from Department dep join dep.certifications cer或者,您可能希望检索符合条件的Department实体,然后使用它们获取证书。
https://stackoverflow.com/questions/16673613
复制相似问题