【发布时间】:2015-07-07 09:08:00
【问题描述】:
我不知道如何在标题中描述我的问题,但我希望它能做到。 这是我的情况。
我使用休眠将我的实体映射到数据库表。
我有一个这样的实体:
@Entity
@Table(name = "EX.EXAMPLE")
public abstract class Entity
{
private CustomEntity customEntity;
public static final String CUSTOM_ENTITY = "customEntity";
@OneToOne(cascade = CascadeType.ALL, mappedBy = CustomEntity.ENTITY, fetch = FetchType.LAZY)
@Fetch(FetchMode.SELECT)
public CustomEntity getCustomEntity()
{
return this.customEntity;
}
}
还有我的自定义实体
@Entity
@Table(name = "EX.EXAMPLE2")
public class CustomEntity
{
private Entity entity;
public static final String ENTITY = "entity";
@OneToOne
@JoinColumn(name = "ID_ENTITY", nullable = true)
public Entity getEntity()
{
return this.ntity;
}
}
所以这是我的问题:是否可以向 Entity 添加另一个 CustomEntity 关系?我如何映射它? 例如我的意思:
@Entity
@Table(name = "EX.EXAMPLE")
public abstract class Entity
{
private CustomEntity customEntity;
public static final String CUSTOM_ENTITY = "customEntity";
private CustomEntity customEntity2;
public static final String CUSTOM_ENTITY2 = "customEntity2";
@OneToOne(cascade = CascadeType.ALL, mappedBy = CustomEntity.ENTITY, fetch = FetchType.LAZY)
@Fetch(FetchMode.SELECT)
public CustomEntity getCustomEntity()
{
return this.customEntity;
}
@OneToOne(cascade = CascadeType.ALL, mappedBy = CustomEntity.ENTITY, fetch = FetchType.LAZY)
@Fetch(FetchMode.SELECT)
public CustomEntity getCustomEntity2()
{
return this.customEntity2;
}
}
我只是通过将 customEntity 更改为 Entity 中的列表来管理它。
问候
【问题讨论】:
-
两者都映射到
CustomEntity中的同一个字段? -
是的,你可以这样做。您对此有什么问题吗?
-
它们都映射到同一个实体,这就是为什么我不知道如何管理它。
-
你可以这样做,你只需要在
CustomEntity中使用两个连接列和两个字段
标签: java hibernate mapping conditional