У меня проблема с использованием JPA.Atypic JPA OneToOne отношение
меня к таблицам:
-----------------
| TableA |
|---------------|
| ID: INT |
| ... |
| ESTATUS1: INT |
| ESTATUS2: INT |
-----------------
-----------------
| EstatusTags |
|---------------|
| COD: VARCHAR |---> COD and VALUE are a concatenated PK
| VALUE: INT |
| DESC: VARCHAR |
-----------------
EstatusTags представляет собой таблицу для хранения множества пар [VALUE, DESC], учитывая ХПК.
Перед тем, как использовать JPA, я использовал для запроса такого рода данных, в чем-то вроде этого:
SELECT ID, ESTATUS1, ESTATUS2, E1.DESC DESC1, E2.DESC DESC2
FROM TABLEA A
INNER JOIN ESTATUSTAGS E1 ON E1.COD = "a_estatus1"
AND E1.VALUE = A.ESTATUS1
INNER JOIN ESTATUSTAGS E2 ON E2.COD = "a_estatus2"
AND E2.VALUE = A.ESTATUS2
Я пытаюсь использовать JPA моделировать это с помощью двух классов сущностей:
@Entity
@Table(name = "EstatusTags")
public class EstatusTags implements Serializable {
@EmbeddedId
private ValueTagPK id;
@Column(name="VVA_DESC")
private String desc;
@Column(name="VVA_ORDEN")
private Integer orden;
}
@Entity
@Table(name = "TableA")
public class A implements Serializable {
@Column(name="ID")
private String desc;
@OneToOne(???)
private EstatusTag estatus1;
@OneToOne(???)
private EstatusTag estatus2;
}
У меня есть серьезные сомнения в том, как моделировать отношения. Можно ли это сделать с аннотациями? Необходимо ли использовать JPQL для этой структуры?
Я надеюсь, что кто-то может помочь мне в этом.
Большое спасибо.
В классе 'A'' desc' строка передается в столбец 'ID', который согласно вашей таблице является целым числом. Это не имеет смысла. В таблице идентификатор 'A' является первичным ключом? Также класс 'A' ссылается на' EstatusTag', где, поскольку ваш класс называется 'EstatusTags' – andih