当前位置: 首页 > 知识库问答 >
问题:

JPA:如何选择@Embeddable类

陈允晨
2023-03-14

我将从@Embeddeble Class 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中选择c]。未知的实体类型[认证]。

如何选择@Embeddeble类?

共有1个答案

漆雕誉
2023-03-14

您需要通过真实的实体类(即< code>Department)检索< code>Certification。一个示例查询如下:

   select cer from Department dep join dep.certifications cer

或者,您可能希望检索符合条件的部门实体,然后使用它们获取证书。

 类似资料:
  • 我想调用一个函数时,选择的任何选项。类似于这样: 但不知何故不起作用。有人能帮忙吗。 请注意 我不想捕获更改事件,如果我选择已经选择选项,则不会触发更改事件

  • 问题内容: 我有班钱是@Embeddable 当我在实体中多次使用它时,一切正常。例如 上面的代码完美地工作。 现在,当我有另一个@Embeddable想要在其中包含Money实例并且该@Embeddable被实体多次使用时,就会出现问题。例: 可嵌入 public class ReportCostValues implements Serializable { 实体 public class R

  • 问题内容: 我有一个具有@Embedded类Profile的User类。如何给Profile实例引用其所有者User类? 问题答案: 假设JPA而不是严格地处于hibernate状态,则可以通过应用getter / setter对而不是私有成员本身来实现。 但是,我想问的是,在这种情况下,嵌入式实体是否就是您想要的,而不是@OneToOne关系,或者只是将Profile类“展平”到User中。@E

  • 在我的应用程序中,我有一个场景,根据给定的输入代码和日期从实体中获取数据。代码和日期的组合将是唯一的,并将返回单个记录。 请建议。

  • 问题内容: 我正在使用Spring JPA执行所有数据库操作。但是我不知道如何从Spring JPA的表中选择特定的列? 例如: 问题答案: 你可以从这样的类中在注释中进行设置: 请注意,你将不得不自己进行映射。像这样使用常规映射查找可能会更容易,除非你确实只需要这两个值: 也许也值得看一下Spring数据文档。

  • 问题内容: 我需要一个相对简单的查询,但是JPA使其很难创建。 SQL变量如下所示: [编辑:OrderID不是主键。表格中可以有更多等于的OrderId] 我需要设置一个传递给我的方法的变量。 我找到了文档, 但似乎无法将它们全部包装在一起。 这是我到目前为止的内容: 问题答案: