休眠映射,在未映射的类上

Posted

技术标签:

【中文标题】休眠映射,在未映射的类上【英文标题】:Hibernate mapping, on a unmapped class 【发布时间】:2010-03-19 09:40:17 【问题描述】:

我有 2 张桌子... Challenge 和 ChallengeYear,ChallengeYear 只是创建一个挑战年份列表。

我只想将 Challenge 设为一个实体,其中包含 List 年份的列表。这可能吗?

我已经查看了 @SecondaryTable 以及 @JoinColumn 和 @OneToMany,但它们都不能解决问题,或者我忽略了一些东西。

有人可以帮我吗?

您好, 一月

【问题讨论】:

您希望如何将它们保存在数据库中?挑战年包含什么?是只有一个包含年份的整数,还是更多? 它应该像 @OneToMany(CascadeType.ALL, FetchType.EAGER) ChallengeYear 包含对 Challenge 的 FK 约束,然后是列年份。这样就有可能增加几年的挑战 【参考方案1】:

您的模型中的年份是什么,它是整数吗?

如果是,您可以使用 @CollectionOfElements 注释您的 Challenge.getYears 方法

喜欢:

  @CollectionOfElements
  @JoinTable(
    table=@Table(name="ChallengeYear"),
    joinColumns = @JoinColumn(name="challengeId")
  )
  @Column(name="year", nullable=false)
  List<Integer> getYears() 
    ...

【讨论】:

很好用,谢谢,我遇到了@CollectionOfElements 注释,但不知道如何配置它。无论如何,谢谢 @Jan - 如果此答案对您有用,请将其标记为已接受(投票计数器下方的勾号) @Jan:我很高兴......休眠映射参考文档可能很难阅读@Bozho:谢谢;-)

以上是关于休眠映射,在未映射的类上的主要内容,如果未能解决你的问题,请参考以下文章

来自标准查询的休眠 NamedQuery --> 需要帮助

休眠中的映射列表<CustomClass> - ClassCastException

如何使用休眠进行逆向工程以获取映射的超类

在 Oracle 上休眠:将字符串属性映射到 CLOB 列

休眠的动态类

datetimeoffset 休眠映射