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

在JPA results in table中映射映射在此描述符中不存在

袁志专
2023-03-14
@OneToMany
private Map<Stage, ScoreCard> scoreCards;

[EL Sersion]:2018-01-11 21:11:10.755--ServerSession(53937593)--Exception[EclipseLink-0](Eclipse Persistence Services-2.7.0.v20170811-D680AF5):org.Eclipse.Persistence.exceptions.IntegrityException描述符

异常[EclipseLink-93](Eclipse Persistence Services-2.7.0.v20170811-D680AF5):org.Eclipse.Persistence.exceptions.Description异常描述:表[SCORECARD]不在此描述符中。描述符:RelationalDescriptor(fi.ipsc_result_server.domain.resultData.CompetitorResultData-->[DatabaseTable(COMPETITORRESULTDATA)])

Exception[EclipseLink-41](Eclipse Persistence Services-2.7.0.V20170811-D680AF5):org.Eclipse.Persistence.exceptions.Description异常描述:必须为序号字段定义非只读映射。描述符:RelationalDescriptor(fi.ipsc_result_server.domain.resultData.CompetitorResultData-->[DatabaseTable(COMPETITORRESULTDATA)])

@Entity
public class TestClass {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    Long id;

    @OneToMany
    @MapKeyJoinColumn(name="testKey")
    Map<TestKeyClass, TestValueClass> testMap;

[getters and setters]
}
package fi.ipsc_result_server.domain.ResultData;
@Entity
public class TestKeyClass {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    Long id;

[getter and setter for id]
}

package fi.ipsc_result_server.domain.ResultData;

@Entity
public class TestValueClass {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    Long id;

[getter and setter for id]
}

共有1个答案

杭镜
2023-03-14

map 可以与@onetomany@manytomany一起使用。您只需添加一个附加注释:

@OneToMany
@MapKeyJoinColumn(name="stage")
private Map<Stage, ScoreCard> scoreCards;

其中名称为:

映射键的外键列的名称。

public clas ScoreCard{

  @ManyToOne
  private Stage stage;
}
 类似资料:
  • 目前我有一个DAO在做这样的事情: 而映射器则执行如下操作:(简化为该问题所需的内容) 作为JsonB字段存储在Aurora中。我读过一些关于注释的文章,但由于jdbi文档不清楚,所以我不确定这是否正确。 我映射结果的方式是“标准”方式吗?还是有更好/更有效的方式? 谢谢

  • 问题内容: xml文件位于我的项目中。我正在使用Eclipse并运行Tomcat(它不是通过Eclipse安装的。我希望它是单独的安装)。 当表单页面提交到servlet时,它不起作用。我每次都收到404错误。我已经遇到这个问题一段时间了。有人请帮助我。 问题答案: 您缺少标记,这对于映射很重要。因此,使用以下命令: 并且您应该像下面这样在表单上赋予价值: 并记下所有值在以下代码中区分大小写: 您

  • 我们必须在可选元素“mappedby”中指定什么。是特定模型的table_name还是classname? 哪个是正确的? 这个

  • 我使用以下方法在映射中映射值: 这里建议:https://stackoverflow.com/a/25905196/411965 我想创建一个与SortedMap类似的方法: 用java 8做这件事的方法是什么?

  • 我正在使用在Hibernate中指定映射设置。也就是说,我正在使用EntityManager类获取事务。 现在,我的中列出了以下类 另外,在我的Eclipse项目中,我还有两个类(student.java和user.java),它们用注释标记,但没有在文件中列出。 但当我运行我的项目时,Hibernate实际上也映射了这两个类。我的意思是,它还为这两个类创建数据库表(我将设置为)。 它为什么要这样

  • 我在spark中有一个数据集,只有一列,这列是一个Map[String,Any]。我想逐行映射数据集,然后逐键映射映射映射列,计算每个键的值,并使用新数据生成与前一个相同类型的新数据集。 例如: 我想在每个值的末尾加上“”,结果将是一个数据类型的数据集,如下所示: 谢谢Nir