我有两个实体:Action
和User
,具有多对一的关系
我搜索了一些操作,并希望获得一个user full name
方面,但我没有数据库中的full_name
列,而是first_name
和last_name
。< / p>
有没有办法在hibernate搜索中创建一个将firstName
和lastName
组合在一起的组合方面?或者有没有办法创建一个组合字段fullName
,它将存在于搜索索引(带有构面)但不存在于数据库中?
映射如下:
@Entity
public class Action {
...
@IndexEmbedded
private User user;
}
@Entity
public class User {
...
@Facet
@Field(analyze = Analyze.NO)
private String firstName;
@Facet
@Field(analyze = Analyze.NO)
private String lastName;
}
答案 0 :(得分:2)
您可以在User对象的方法上使用@Facet和@Field。
所以你可以定义类似的东西:
@Facet
@Field
public String getFullName() {
return new StringJoiner(" ").add(firstName).add(lastName).toString();
}