例如,我在数据库中有一个表和一个获取表 id 并返回一些数字的函数(我使用 Oracle 语法,但我相信 RDMS 在这种情况下并不重要),
CREATE TABLE test1( test1_id INT NOT NULL PRIMARY KEY,
val VARCHAR(50));
CREATE FUNCTION getNum (id IN test1.test1_id%type) RETURN NUMBER IS ....
在我的休眠数据对象类中,我想添加一个保存函数执行结果的属性。使用注释的正确方法是什么?
@javax.persistence.Table(name = "test1", schema = "test", catalog = "")
@Entity
public class Test1Entity
{
private int test1Id;
@Column(name = "test1_id", nullable = false, insertable = true,
updatable = true, length = 22, precision = 0)
@Id
//get/set
...
// is it possible to use annotations,
// so it will call a function to populate this field ?
private BigDecimal test_num;
}
我正在考虑创建命名本机查询,例如SELECT a.test1_id, a.val, getNum(a.test1_id) as test_num FROM test1 a WHERE a.test1_id = :param_test1_id
,但这意味着我不能Session.get
用于从 DB 读取对象。
谢谢你。