Java Hibernate:不直接引用关联对象的一对一关联

Java Hibernate:不直接引用关联对象的一对一关联,java,hibernate,one-to-one,Java,Hibernate,One To One,我现在有这样的东西: public class Particle extends Entity { private Image image; ... @OneToOne(targetEntity = Image.class, cascade = CascadeType.ALL) @JoinColumn(name = "imageId") public Image getImage() { return image; } } 这很好,但由于另一个处

我现在有这样的东西:

public class Particle extends Entity
{
   private Image image;
   ...

   @OneToOne(targetEntity = Image.class, cascade = CascadeType.ALL)
   @JoinColumn(name = "imageId")
   public Image getImage() {
     return image;
   }
}
这很好,但由于另一个处理,我需要相同的,而不引用对象。 所以我需要的实际上是:

   public class Particle extends Entity
{
   private int imageId;
   ...

   @OneToOne(cascade = CascadeType.ALL)
   @JoinColumn(name = "imageId")
   public int getImage() {
     return imageId;
   }
}     
显然我得到了一个例外,它说粒子类引用了一个未知的实体。 有没有一种方法,只将id作为FK提供给image,而不是直接设置对象?
在数据库表中,imageId已经是一个整数列

您可以使用
@SecondaryTable
()

它看起来像这样

@Entity
@Table(name = "particle")
@SecondaryTable(name = "image", pkJoinColumns=@PrimaryKeyJoinColumn(name="id", referencedColumnName="imageId"))
public class Particle extends Entity {
    ...
    @Column(table="image", name="imageId")
    public int getImageId() {
        return imageId;
   }
}

非常感谢。我试过了,但没有达到我的预期。这为图像对象添加了一个新的约束,因为hibernate找不到粒子。但也许我的问题还不够清楚,不能说清楚。我希望能够在不提供粒子对象的情况下插入图像。但如果我插入一个粒子对象,必须有一个图像来引用它。所以我认为一对一的映射不适合这种情况。我怎样才能做到这一点。粒子对象中的图像对象应该只定义为一个整数,正如前面提到的那样。