powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Объединение сущностей Hibernate
5 сообщений из 5, страница 1 из 1
Объединение сущностей Hibernate
    #39857120
Малахит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Подскажите, пожалуйста, разбирающиеся в hibernate.
Суть задачи следующая:

БД PostgreSQL.

Есть две сущности:

@Entity
@Table(name = "tplan")
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
@NamedQueries({
@NamedQuery(name = "Tplan.findAll", query = "SELECT t FROM Tplan t")})
public class Tplan implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Size(max = 2)
@Column(name = "gp")
private String gp;
@Size(max = 2)
@Column(name = "kodn")
private String kodn;
@Size(max = 120)
@Column(name = "itxt")
private String itxt;
@Column(name = "kodb")
private Character kodb;
@Column(name = "nstr")
private Short nstr;
@Column(name = "skp")
private Short skp;
@Column(name = "kolp")
private Short kolp;
@Size(max = 3)
@Column(name = "lgot")
private String lgot;
@Size(max = 6)
@Column(name = "kv")
private String kv;
@Size(max = 16)
@Column(name = "klov")
private String klov;
@Column(name = "pnts")
private Integer pnts;
@Size(max = 2)
@Column(name = "mkl")
private String mkl;
@Column(name = "pr_f16")
private Character prF16;



public Tplan() {
}

public Tplan(Integer id) {
this.id = id;
}


// Getters - Setters


@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}

@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Tplan)) {
return false;
}
Tplan other = (Tplan) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}

@Override
public String toString() {
return "integrator_local.Tplan[ id=" + id + " ]";
}


}



@Entity
@Table(name = "lgot")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Lgot.findAll", query = "SELECT l FROM Lgot l")})
public class Lgot implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Size(max = 2)
@Column(name = "gos")
private String gos;
@Size(max = 2)
@Column(name = "gosdlg")
private String gosdlg;
@Size(max = 3)
@Column(name = "lgot")
private String lgot;
@Column(name = "kp")
private Character kp;
@Column(name = "datan")
@Temporal(TemporalType.DATE)
private Date datan;
@Column(name = "dataot")
@Temporal(TemporalType.DATE)
private Date dataot;
@Size(max = 5)
@Column(name = "snazv")
private String snazv;
@Column(name = "nommv")
private Short nommv;
@Size(max = 6)
@Column(name = "lname")
private String lname;
@Size(max = 2)
@Column(name = "nmu1")
private String nmu1;
@Size(max = 2)
@Column(name = "nmu2")
private String nmu2;
@Size(max = 3)
@Column(name = "gr")
private String gr;
@Size(max = 5)
@Column(name = "nmopl")
private String nmopl;
@Size(max = 2)
@Column(name = "gp")
private String gp;
@Size(max = 4)
@Column(name = "sub")
private String sub;
@Size(max = 3)
@Column(name = "sub8")
private String sub8;
@Column(name = "pr_pzd")
private Character prPzd;
@Size(max = 3)
@Column(name = "lsp")
private String lsp;
@Column(name = "vz1")
private Short vz1;
@Column(name = "vz2")
private Short vz2;
@Size(max = 2)
@Column(name = "nmud1")
private String nmud1;
@Size(max = 2)
@Column(name = "nmud2")
private String nmud2;
@Size(max = 64)
@Column(name = "akt")
private String akt;

public Lgot() {
}

public Lgot(Integer id) {
this.id = id;
}

//
// Getters Setters
//


@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}

@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Lgot)) {
return false;
}
Lgot other = (Lgot) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}

@Override
public String toString() {
return "integrator_local.Lgot[ id=" + id + " ]";
}

}


Из них нужно сделать связанную сущность по полям (связь ManyToMany)
tplan.gp=lgot.gp
tplan.lgot=lgot.lgot

Можно ли это реализовать?
Спасибо!
...
Рейтинг: 0 / 0
Объединение сущностей Hibernate
    #39857139
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Малахит,
Поиск примера много ко многим в тырнете.
Делается через промежуточную таблу в бд.
Но это не сущность.
Техническая табла связи.
...
Рейтинг: 0 / 0
Объединение сущностей Hibernate
    #39857162
Малахит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpМалахит,
Поиск примера много ко многим в тырнете.
Делается через промежуточную таблу в бд.
Но это не сущность.
Техническая табла связи.

Спасибо за ответ!
Я гуглил этот вариант, но вопрос тогда в следующем - эта *промежуточная таблица* может быть закеширована через Infinispan?
Если описать глубже суть задачи, то есть веб-сервис, который выдает по запросу результат связки этих таблиц в XML, предварительно его закешировав через Infinispan, поскольку содержание таблиц меняется редко.

При выдаче по одной таблице все работает хорошо, сущность кешируется и выбирается из кеша. Но вот возникла задача сделать выдачу из нескольких таблиц...
...
Рейтинг: 0 / 0
Объединение сущностей Hibernate
    #39857196
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Малахит,
Не надо зря оптимизировать.
Докажи что тормозит, и только потом включаем второй кеш или оптимизируем.
Все это из коробки.
Удачи!
...
Рейтинг: 0 / 0
Объединение сущностей Hibernate
    #39857266
Малахит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpМалахит,
Не надо зря оптимизировать.
Докажи что тормозит, и только потом включаем второй кеш или оптимизируем.
Все это из коробки.
Удачи!

Спасибо!
И Вам тоже :)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Объединение сущностей Hibernate
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]