JPA Entity ModelJAVA

Программисты JAVA общаются здесь
Anonymous
JPA Entity Model

Сообщение Anonymous »

У меня есть эти объекты: < /p>
Пользователь < /p>
@Entity
@Table(name = "USER")
public class User implements Serializable {

private static final long serialVersionUID = -4827645864353922449L;

@Id
@GeneratedValue(generator = "USER_SEQ", strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name = "USER_SEQ", sequenceName = "USER_SEQ", allocationSize = 1, initialValue = 1)
@Column(name = "USER_ID")
private long userId;

@Column(name = "NAME", length = 50)
private String name;

@Column(name = "SURNAME", length = 50)
private String surname;

@Column(name = "FISCAL_CODE", length = 50)
private String cf;

public Utente(String nome, String cognome, String cf) {
setNome(nome);
setCognome(cognome);
setCf(cf);
}

public Utente() {
super();
}

public long getUtenteId() {
return utenteId;
}

public void setUtenteId(long utenteId) {
this.utenteId = utenteId;
}

public String getNome() {
return nome;
}

public void setNome(String nome) {
this.nome = nome;
}

public String getCognome() {
return cognome;
}

public void setCognome(String cognome) {
this.cognome = cognome;
}

public String getCf() {
return cf;
}

public void setCf(String cf) {
this.cf = cf;
}

@Override
public boolean equals(Object o) {
if (o == null || getClass() != o.getClass())
return false;
User u = (User) o;
return userId == u.userId &&
Objects.equals(name, u.name) &&
Objects.equals(surname, u.surname) &&
Objects.equals(cf, u.cf);
}

@Override
public int hashCode() {
return Objects.hash(userId, name, surname, cf);
}
}
< /code>
Office < /p>
@Entity
@Table(name = "OFFICE")
public class Office implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@Column(name = "CODE", length = 100)
private String code;

@Column(name = "DESCRIPTION", length = 100)
private String description;

@ManyToMany(mappedBy = "offices")
private List locals;

public Office() {
super();
}

public Office(String code, String description, List locals) {
super();
this.code = code;
this.description = description;
this.locals = locals;
}

public Office(String code) {
this.code = code;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public List getLocals() {
return locals;
}

public void setLocals(List locals) {
this.locals = locals;
}

@Override
public boolean equals(Object o) {
if (o == null || getClass() != o.getClass())
return false;
Office off = (Office) o;
return Objects.equals(code, off.code) && Objects.equals(description, off.description) && Objects.equals(locals, off.locals);
}

@Override
public int hashCode() {
return Objects.hash(code, description, locals);
}

}
< /code>
локальный < /p>
@Entity
@Table(name = "LOCAL")
public class Local implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@Column(name = "CODE", length = 50, nullable = false)
private String code;

@Column(name = "DESCRIPTION", length = 100, nullable = false)
private String description;

@ManyToMany
@JoinTable(name = "ASS_OFF_LOC", joinColumns = @JoinColumn(name = "CODE"), inverseJoinColumns = @JoinColumn(name = "CODE_OFFICE"))
private List offices;

public Local(String code) {
this.code = code;
}

public Local() {
super();
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public List getOffices() {
return offices;
}

public void setOffices(List offices) {
this.offices = offices;
}

@Override
public boolean equals(Object o) {
if (o == null || getClass() != o.getClass())
return false;
Local immobile = (Local) o;
return Objects.equals(code, immobile.code) &&
Objects.equals(description, immobile.description) &&
Objects.equals(offices, immobile.offices);
}

@Override
public int hashCode() {
return Objects.hash(code, description, offices);
}

}
< /code>
ass_off_loc < /p>
@Entity
@Table(name = "ASS_OFF_LOC")
@IdClass(AssOrgLocId.class)
public class AssOffLoc implements Serializable {

private static final long serialVersionUID = -2217545215089280956L;

@Id
@ManyToOne
@JoinColumn(name = "CODE_OFFICE")
private Office office;

@Id
@ManyToOne
@JoinColumn(name = "CODE_LOCAL")
private Local local;

public AssOffLoc(String codiceOffice, String codiceSigma) {
this.office = new Office(codiceOffice);
this.local = new Local(codiceSigma);
}

public AssOffLoc(Office office, Local local) {
super();
this.office = office;
this.local = local;
}

public AssOffLoc() {
super();
}

public Office getOffice() {
return office;
}

public void setOffice(Office office) {
this.office = office;
}

public Local getLocal() {
return local;
}

public void setLocal(Local local) {
this.local = local;
}

@Override
public boolean equals(Object o) {
if (o == null || getClass() != o.getClass())
return false;
AssOffLoc assOffLoc = (AssOffLoc) o;
return Objects.equals(office, assOffLoc.office) && Objects.equals(local, assOffLoc.local);
}

@Override
public int hashCode() {
return Objects.hash(office, local);
}

}
< /code>
Теперь мне нужно написать объект для этой таблицы: < /p>
CREATE TABLE ASS_USER_OFF_LOC(
USER NUMBER(19,0),
OFFICE VARCHAR2(100),
LOCAL VARCHAR2(100),
CONSTRAINT ASS_USER_OFF_LOC_PK PRIMARY KEY (USER),
CONSTRAINT SYS_C009555 CHECK ("USER" IS NOT NULL),
CONSTRAINT SYS_C009556 CHECK ("OFFICE" IS NOT NULL),
CONSTRAINT SYS_C009557 CHECK ("LOCAL" IS NOT NULL)
);

ALTER TABLE ASS_USER_OFF_LOC ADD CONSTRAINT "ASS_USER_OFF_LOC_ASS_OFF_LOC_FK" FOREIGN KEY ("OFFICE", "LOCAL")
REFERENCES "ASS_OFF_LOC" ("CODE_OFFICE", "CODE_LOCAL");
ALTER TABLE "ASS_USER_OFF_LOC" ADD CONSTRAINT "ASS_USER_OFF_LOC_USER_FK" FOREIGN KEY ("USER")
REFERENCES "USER" ("USER_ID");
< /code>
Как я могу написать объект для этой таблицы? Таблица позволяет иметь только одну запись для одного и того же пользователя, и эта запись может быть изменена в значениях офиса и локального. В сущности я хотел бы составить на карту пользовательский столбец с помощью объекта пользователя, а также офисными и локальными столбцами с объектом Assoffloc

Подробнее здесь: https://stackoverflow.com/questions/795 ... tity-model

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