2011-10-31 95 views
2

是否可以使用休眠映射數據結構Map<String, int[]>?該數組通常會有相同的數字條目。如何映射Map <String,int []>?

對不起,可能愚蠢的問題,但我目前不知道如何做到這一點。

+4

int [4] s中數字的含義是什麼?這看起來像你實際上想要一個有4個字段的新類。 –

+0

該數組將存儲映射到開發過程步驟的度量值的目標值。例如,在0級中,值應該是2,在1級時應該是5會導致[0] = 2和[1] = 5。該字符串存儲測量的名稱。 我必須糾正自己。這些步驟的數量是恆定的,但可以配置==>所以我們需要一個數組或一個列表。在我們的測試配置中,我們使用了4. 我唯一的想法是用字符串和數組作爲成員來實現一個類,並分別映射這個類。但是有沒有更優雅的方式? – BitSchupser

+1

像「Measurement {String name; int [] data; }'會更多「關係」,然後'Map '在這裏,但它會使名稱的訪問複雜化 - 通常的訪問模式是什麼?如果在可預見的未來出現超過「預期價值」的情況,可能是「Measurement {String name; SortedSet data; } class DataPoint {int value; ...}可能是另一個(非常詳細)的選項。 –

回答

0

前段時間我試過做類似的事情,甚至在一些嚴重的文獻研究之後,我無法以通用的方式找到在hibernate中映射數組的方法。

當時我的解決方案是一個包裝類(有超過4個)的字段和訪問器方法,它們允許對這些字段進行類似數組的訪問。

int a; 
int b; 
int c; 
int d; 

public int get(int ref) { 
    switch(ref) { 
    case 0: 
     return a; 
    case 1: 
     return b; 
    case 2: 
     return c; 
    case 3: 
     return d; 
    default: 
     throw new ArrayIndexOutOfBoundsException(); 
    } 
} 

如果您有四個以上的變量需要處理,您可以使用反射而不是switch語句。

相關問題