2011-11-25 59 views
0

Licitatie实体:Java的JPA - 实体之间的关系OneToOne不工作

@Entity 
@Table(name="licitatie") 
public class Licitatie implements Serializable { 
    ... 

    //bi-directional one-to-one association to Licitatie 
    @OneToOne(mappedBy="licitatie") 
    private Produs produs; 

    ... 
} 

Produs实体:

@Entity 
@Table(name="produs") 
//@DiscriminatorColumn(name="id", discriminatorType=DiscriminatorType.INTEGER) 
@MappedSuperclass 
public class Produs implements Serializable { 
    ... 

    //bi-directional one-to-one association to Produs 
    @OneToOne 
    @JoinColumn(name="licitatie_id") 
    private Licitatie licitatie; 

    ... 
} 

数据库:

Licitatie:

id start status 
1 5 open 
2 5 open 
3 5 open 

Produs:

id licitatie_id DTYPE description 
1 1   Carte ... 
2 2   Carte ... 
3 3   Carte ... 

后我运行三查询:“SELECT吨FROM Licitatie吨”,从类型的对象属性产品Licitatie为空。但是表格中有记录。

我在做什么错了?

*编辑*

后,我从表中的数据,调用getProdus()返回此消息:

{IndirectSet:不实例}

+0

你可能想看看嵌入式注释... – Mechkov

+0

我认为没有错,除了MappedSuperClass注解。你确定**每**合法都有自己的产品(因为查询从数据库返回每一个合法)?在licitatie_id列中是否存在唯一约束?什么是JPA引擎? –

+0

我相信每个“合法”只有一个“produs”记录。 – Emanuel

回答

0

解决

我已经将列PRODUS_ID添加到licitati电子表格。

Licitatie:ID produs_id ... Produs:ID,licitatie_id ...