我正在使用mysql和hibernate 4.2.1,我的应用程序是独立的。即没有春天等等。
我有以下课程:
@Entity(name = "families")
class Family {
private String name;
}
@Entity(name = "persons")
class Person {
private Family family;
private String name;
}
我的问题是,为类人物设置派生属性fullName, 构造为连接的family.name和this.name。此外,在此属性的DB中有一个索引也很好。
我试过这样的事,但没有成功。
@Index(...)
@Column(insertable = false, updatable = false)
@Formula("family.name || ' ' || name")
private String fullName;
即,我不明白我应该在@Index中写什么,以及@Formula的内容是什么。 你能帮我吗?
谢谢。
答案 0 :(得分:0)
@Formula用于id:
如果我们想在您的实体中应用虚拟属性来获取计算值,我们可以使用@Formula注释来设置公式。这个公式可以像我们想要的那样复杂。
@Column(name="length")
private int length;
@Column(name="width")
private int width;
@Formula(" length * width ")
public long area;
使用您自己的公式计算任何内容
@Index用于:
@Index在属性级别应用索引。如果实体的属性使用@Index注释,则将在列上应用具有给定名称的索引。
@Column(name="name")
@Index(name="nameIndex")
private String name;