0

たとえば、データベースにテーブルがあり、テーブルの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; 
}

のような名前のネイティブクエリを作成することを考えていましたが、DBからオブジェクトを読み取るために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

ありがとうございました。

4

1 に答える 1

1

これを使って:

@Formula( "getNum(test1_id)" )
private BigDecimal test_num; 
于 2012-06-01T22:31:32.237 に答える