Java 休眠映射重复列(在实体内)

Java 休眠映射重复列(在实体内),java,hibernate,Java,Hibernate,表如下所示:为了简单起见,我跳过了几列 ColumnnID ColumnA ColumnB 1 1 A 2 1 B 3 2 C 4 3 C 映射到实体MyClass的表 class MyClass { @Id private long columnId; @column(name = "

表如下所示:为了简单起见,我跳过了几列

ColumnnID   ColumnA    ColumnB
     1         1           A
     2         1           B
     3         2           C
     4         3           C
映射到实体MyClass的表

class MyClass {

  @Id
  private long columnId;

  @column(name = "columnA")
  private long columnA;

  @column(name = "columnB")
  private long columnB;
}
在执行简单查询(条件)之后,我不会让我的hibernate实体看起来像这样

Criteria criteria = this.getSessionFactory().getCurrentSession()
                .createCriteria(MyClass.class);
结果:

data: {
    myClass : {
        columnId: 1
        columnA: 1
        mapColumnB : [
           A,
           B    
        ],
     },
      myClass : {
        columnId: 3
        columnA: 2
        mapColumnB : [
           C   
        ],
     },
     myClass : {
        columnId: 4
        columnA: 3
        mapColumnB : [
           C    
        ],
     }

    }
有什么想法吗?需要在实体内映射

如果我能做到这一点,并且只能一行一行地获取,那么在Java中,什么样的方法可以有效地将列表重建为我需要的演示文稿?

编辑:答案是针对原始问题(由帖子所有者(asker)编辑问题之前)!!,而不是针对问题的当前版本


您提到的预期结果,不是一个实体,它可能只是一个
条件
hql
查询的结果

您可以根据数据/表/查询写入实体,但需要为实体提供
Id
(从唯一字段映射),并且由于示例数据没有唯一列,因此无法写入,因此您必须向表中添加额外列(PK/unique),或者必须为
Id
使用复合键,我的意思是使用
(ColumnA和ColumnB)
的组合作为
Id
,只需做一点搜索,你就会知道如何做;一旦您这样做了,您将能够获得预期的结果,而无需任何复杂的条件或hql查询