есть ли способ сохранить все значения в классе @Entity с отношением @onetomany в одной таблице с помощью JPA?

#java #jpa

Вопрос:

Я новичок в JPA и все еще учусь, у меня есть одно сомнение/проблема, связанная с JPA, и я слишком растерян, чтобы найти какое-либо решение, может кто-нибудь, пожалуйста, дайте мне знать, могу ли я сделать какой-либо обходной путь, чтобы это сделать, или укажите мне на некоторую документацию, если это возможно.

Моя структура json:

 {
"Action":"txn",
"Rec_count":"1",
"Page_count":"1",
"Records":
               [
               {
                "Pan":"abcd",
                "CRN":"cedf"},
                {
                "Pan":"1234",
                "CRN":"sfdg"}
                ]
}
 

Теперь, если я хочу указать @Id поле CRN и сохранить все значения, т. Е. action, rec_count, page_count, pan и CRN, в одной таблице и итерации массива (две строки в приведенном выше случае),
это может быть выполнено или это невозможно сделать?

Потому @Embeddable что может использоваться для хранения всего в одной таблице, но вы не можете назначить @id встраиваемый класс.

Класс сущностей

 import lombok.*;
import javax.persistence.*;
import java.util.List;
@Table(name="GET_RECORDS")
@ToString
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@Entity
public class entityClass{
    private String Action;
    private int Rec_cnt;
    private String Page_count;
    @OnetoMany
    private List<Records> records;
}
 

И я попытался создать класс записей как

 import lombok.*;
import javax.persistence.*;
@ToString
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@embeddable
public class Records{
    @Id
    @NotNull
    private String CRN;
    @NotNull
    private int PAN;
}
 

Я получаю сообщение об ошибке onetomany attribute value type should not be embeddable

Пожалуйста, дайте мне знать, есть ли какой-нибудь способ сделать это ?

Комментарии:

1. Вы можете использовать @ElementCollection аннотацию вместо @OnetoMany того, чтобы устранять ошибку, но я не думаю, что вы сможете избежать создания jpa дополнительной таблицы для хранения записей

2. Встраиваемый работает только один к одному. Почему ты хочешь это сделать? Наличие двух таблиц является целью реляционной базы данных. Если вы хотите хранить только иерархические документы, проверьте MongoDB