2014-11-04 35 views
1

我有2个表。表1有一个名为'id'的列,它是一个数字。表2有一个名为entity_id的列,它是varchar。 Table1与Table2有一对多的关系。在休眠中加入不同类型的列

这里是我的表1

@Entity 
@Table(name="Table1") 
public class Table1 implements Serializable { 
    private long id; 
    private List<Table2> notes; 
    @Id 
    @Column(name="ID") 
    public long getId() { 
     return id; 
    } 
    public void setId(long id) { 
     this.id= id; 
    } 

    @OneToMany(fetch=FetchType.EAGER,targetEntity=Table2.class) 
    @Fetch(FetchMode.JOIN) 
    @JoinColumn(name="ENTITY_ID",referencedColumnName="ID") 
    public List<Table2> getNotes() { 
     return storeNotes; 
    } 
    public void setNotes(List<Table2> notes) { 
     this.notes = notes; 
    } 
} 

Hibernate映射当我创建一个表1和ctiteria尝试列出的数据,我得到无效的数量错误,因为在类型不匹配联接列。你可以让我知道我怎么能ast id到varchar?

+0

看到这个职位:http://stackoverflow.com/questions/3096985/jpa-or-hibernate-joining-tables-on-columns-of-different-types – chouk 2014-11-04 10:26:51

+0

类型在这里,以帮助我们编写正确的代码不要破解。您可能需要考虑重新设计您的数据结构。 – Dmytro 2014-11-04 10:28:57

+0

显示您尝试过的程序并显示异常的完整堆栈跟踪。 – Chaitanya 2014-11-04 10:39:33

回答

0

为什么要选择那种设计类型不匹配?它是一种最佳实践,在POJO和表格中具有一致的数据类型,除非和直到这种特殊情况下存在可靠的用例。