Hibernate可以使用与字段名称不同的实体属性的逻辑名称吗?

时间:2013-06-10 14:22:41

标签: java hibernate jpa orm

假设有一个Hibernate实体通过注释配置了字段访问。我想映射Java类字段_name,以便Hibernate的逻辑名称为name,例如,从HQL查询引用时。我需要这个主要用于收藏。

预测不正确的建议:无法将访问类型切换为“属性”;该任务与物理列的名称无关。

4 个答案:

答案 0 :(得分:2)

基于我对您的问题的理解 - 您可以像这样定义实体。这将生成一个名为(NewName_ABC with column name)

的hi​​bernate表
@Entity
@Table(name = "NewName_ABC")
public class ABC
{
.
@Column(name = "name")
private string _name;
.
.
}

可以使用liquibase来创建表格。

答案 1 :(得分:1)

你的意思是这样吗?

@Column(name = "name")
private string _name;

答案 2 :(得分:0)

您可以创建具有不同名称的第二个属性指向同一列,并在HQL查询中使用它。但是有一个限制:只有其中一个属性可以映射为可插入的,可更新的。

@Column(name="name")
private string name;

@Column(name="name", insertable=false, updatable=false)
private string alsoName;

答案 3 :(得分:0)

您可以在SQL中使用HQL中的别名。您无需为此指定任何注释。可以在查询时添加注释:

从名称_name

中选择ID