假设有一个Hibernate实体通过注释配置了字段访问。我想映射Java类字段_name
,以便Hibernate的逻辑名称为name
,例如,从HQL查询引用时。我需要这个主要用于收藏。
预测不正确的建议:无法将访问类型切换为“属性”;该任务与物理列的名称无关。
答案 0 :(得分:2)
基于我对您的问题的理解 - 您可以像这样定义实体。这将生成一个名为(NewName_ABC with column name)
的hibernate表@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