Использование Spring Boot JPA для моделирования объекта, содержащей карту строк для пользовательских объектовJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Использование Spring Boot JPA для моделирования объекта, содержащей карту строк для пользовательских объектов

Сообщение Anonymous »

Мое приложение использует Spring Boot 3.3.7 с включенной поддержкой JPA, что означает, что Hibernate 6 используется. < /p>
Мне нужно определить следующую структуру Java, которая будет сохраняться с использованием классов Java Entity : < /p>
  • Компания < /code> (например, 001), < /p>
    < /li>
    < li> может иметь много пользователей (например, robert@company.com),
  • и у каждого пользователя может быть много Приложения (например, демонстрация),
  • Каждое приложение будет иметь 1 связанный эмиттер , который в основном будет содержать идентификатор (например, 1234-5678).
Вот дерево иерархии:
.
├── 001
│   ├── joe@company.com
│   │   └── test
│   │   └── EmitterId (1234-5678)
│   └── robert@company.com
│   ├── test
│   │   └── EmitterId (9876-5432)
│   └── demo
│   └── EmitterId (9876-9876)
└── 002
└── robert@company.com
└── demo
└── EmitterId (1234-5678)
< /code>
Моя цель состоит в том, чтобы иметь возможность запросить базу данных, чтобы принести идентификатор излучения, предоставив 3 части данных: < /p>

Компания (001) +< /li>
user (joe@company.com) +< /li>
Приложение (тест) < /li>
< /ol>
= 1234-5678 < /p>
Если я знаю эти значения заранее, я должен быть в состоянии принести связанное значение EmitterID. < /p>
Я не слишком знаком с моделированием карты с использованием JPA, а ниже - моя первая попытка, но я чувствую, что это не правильный способ решения проблемы. Может ли кто -нибудь дать некоторое представление о том, как это можно смоделировать лучше? Br/> Я бы хотел, чтобы основной ключ для компании -ключи от карты также.
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import java.util.Map;

@Entity
public class Company {

@Id
private String id;

@ElementCollection
private Map users;

// getters / setters
}
< /code>
User.java:
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.ManyToOne;
import java.util.Map;

@Entity
public class User {

@Id
private String id;

@ElementCollection
private Map applications;

@ManyToOne
private Company company;

// getters / setters
}
< /code>
Application.java:
@Entity
public class Application {

@Id
private String id;

@ManyToOne
private User user;

private Emitter emitter;

// getters / setters
}
< /code>
Emitter.java:
@Entity
public class Emitter {

@Id
private String id;

// getters / setters
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... o-custom-o
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»