0
我有這樣的模型複雜的數據:數據的基礎上的JPA:映射配合物數據
@Entity
public class A {
@id
public Long id;
@Column
public String code;
@OneToMany
@JoinTable(name = "A_REF",
joinColumns = @JoinColumn(name = "ID_A"),
inverseJoinColumns = @JoinColumn(name = "ID_REF"))
public Set<AbstractRef> refs;
}
@Entity
@Table("T_REF")
@DiscriminatorColumn(name="type")
public abstract class AbstractRef {
@id
public Long id;
@Column
public String value;
}
@Entity
@DiscriminatorValue(value="B")
public class B extends AbstractRef {
}
@Entity
@DiscriminatorValue(value="C")
public class C extends AbstractRef{
}
@Entity
@DiscriminatorValue(value="D")
public class D extends AbstractRef {
}
實施例:
T_A
ID | NAME
1 | X
2 | Y
T_REF
ID | VALUE | TYPE | ID_A
1 | H | B | 1
2 | I | B | 1
3 | H | B | 2
4 | P | C | 1
5 | O | C | 1
6 | O | C | 2
7 | Z | D | 1
8 | F | D | 1
9 | M | D | 2
我想通過使用的一個集合值來獲得A(1,X) B,C和d,而不是技術上的ID
List<String> values = Arrays.asList(new String[]{"H","I","P","O","Z","F"});
A aWithFunctinnalId = service.getA(values);
我的情況,值的集合( 「H」, 「I」, 「P」, 「O」, 「Z」, 「F」)是我的函數ID。
我該怎麼做?
謝謝你的幫助!
感謝您對我們的答覆,但是,如果我有「A」兩個實例與「REF」大小相同的值不同,它仍然有效嗎? –
我想如果有兩個相同大小的「REF」的「A」的實例,我得到一個錯誤的結果 –