我正在尝试将本机 sql 查询用于现有实体对象,同时保留整个对象的默认 Hibernate 行为。
对象上的大部分字段映射如下:
@Column(name = "FIRST_NAME", nullable = false)
public String getFirstName() {
return firstName;
}
@Column(name = "MIDDLE_NAME", nullable = true)
public String getMiddleName() {
return middleName;
}
@Column(name = "LAST_NAME", nullable = false)
public String getLastName() {
return lastName;
}
@Column(name = "PRIMARY_EMAIL_ADDR", nullable = false)
public String getPrimaryEmailAddress() {
return primaryEmailAddress;
}
我想保留此功能,但添加一个需要映射到自定义(最好是本机)SQL 查询的字段。我设想过类似...
Private String foo;
@NativeSQLQuery("SELECT info FROM foo")
public String getFooInfo{return foo}
..但是如果有办法做到这一点,那么我就错过了。
我已经调查SqlResultSetMapping
了几个类似的 Native 和 Named Query 注释,但我能找到的所有内容似乎都假设一个在类级别上运行 - 整个实体以自定义的本地方式映射,而不仅仅是一个字段。如何保持正常功能,但为一个字段添加自定义映射?我在使用 hbm 文件之前已经这样做了,我想,很久以前,但是这个当前的项目是基于注释的。目前,我能想到的最好的办法是标记getter@Transient
并且根本不映射它,而只是用它来执行查询,但我真的不想那样做,因为它看起来像一个总数黑客。