Ho una tabella di controllo con la revisione e voglio creare un'altra tabella con una relazione uno-a-molti con la revisione della tabella di audit. La revisione dell'audit indicherà i nuovi dati della tabella. Come lo posso fare?Hibernate join table con altra tabella di controllo
11
A
risposta
2
che ho fatto qualcosa di simile in un progetto che ha GPA degli studenti (tabella di controllo con le revisioni) e poi un tavolo con il CurrentGpa
che punta sempre ad una revisione di piombo dalla tabella GPA
. Per fare questo ho usato la seguente struttura:
CurrentGpa.java
@Entity(name = HibernateConsts.CURRENT_GPA_TABLE)
public class CurrentGpa {
protected Gpa gpa;
protected Student student;
protected Long id;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = HibernateConsts.CURRENT_GPA_ID)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@OneToOne(optional = true, fetch= FetchType.EAGER)
@Fetch(FetchMode.JOIN)
@JoinColumn(name = HibernateConsts.GPA_FK)
public Gpa getGpa() {
return gpa;
}
public void setGpa(Gpa gpa) {
this.gpa = gpa;
}
@OneToOne(optional = true, fetch= FetchType.EAGER)
@Fetch(FetchMode.JOIN)
@JoinColumn(name = HibernateConsts.STUDENT_FK)
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
// ...
}
Gpa.java
@Entity(name = HibernateConsts.GPA_TABLE)
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public abstract class Gpa {
protected Long studentId;
protected Double score;
protected LocalDate startDate;
protected LocalDate endDate;
protected LocalDate calculationDate;
protected Long id;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = HibernateConsts.GPA_ID)
public Long getId() { return id; }
public void setId(Long id) {
this.id = id;
}
@Column(name = HibernateConsts.STUDENT_FK)
public Long getStudentId() {
return studentId;
}
public void setStudentId(Long studentId) {
this.studentId = studentId;
}
@Column(name = HibernateConsts.GPA_SCORE)
public Double getScore() {
return score;
}
public void setScore(Double score) {
this.score = score;
}
@Column(name = HibernateConsts.GPA_START_DATE)
public LocalDate getStartDate() {
return startDate;
}
public void setStartDate(LocalDate startDate) {
this.startDate = startDate;
}
@Column(name = HibernateConsts.GPA_END_DATE)
public LocalDate getEndDate() {
return endDate;
}
// ...
}
Problemi correlati
- 1. INSERT-OUTPUT con colonna da altra tabella
- 2. hibernate criteria api problema tabella join
- 3. INNER JOIN same table
- 4. accetta_nested_attributes_for tramite join table con attributi sul join
- 5. sql join two table
- 6. sqlalchemy - join child table con 2 condizioni
- 7. Hibernate criteri di join con 3 tavoli
- 8. tavolo aggiornamenti tramite casuale di valori multipli in altra tabella
- 9. One-a-molti con Join Tabella
- 10. Hibernate noob fetch join problem
- 11. Doctrine 2 join table + extra fields
- 12. Come ottenere tabella con riferimenti altra tabella in yii2?
- 13. SQL Query JOIN con tabella
- 14. aggiornamento tabella Informix con join
- 15. join tabella con più group_concat
- 16. Verificare se la tabella eredita da altra tabella in PostgreSQL
- 17. Controllo con Envers e Hibernate Spatial 4
- 18. Hibernate @OneToMany senza una tabella separata unirsi
- 19. Selezionare dalla tabella a seconda voci in altra tabella
- 20. SQL table multiple join throwing dupes
- 21. Come creare una tabella di join con annotazioni JPA?
- 22. join SQL, che mi dice che se ID esiste in altra tabella
- 23. Come non controllare una tabella di join e entità correlate utilizzando Hibernate Envers?
- 24. Hibernate Schema Validation Fails su Oracle Table Sinonimi
- 25. Come eliminare righe da join-table (ManyToMany) in Doctrine?
- 26. Deve dichiarare la variabile di tabella @table
- 27. HQL, join sinistro sulla stessa tabella
- 28. get join tabella con valore colonna
- 29. LEFT JOIN in Hibernate Query Language
- 30. Differenza tra JOIN e JOIN FETCH in Hibernate
controllare la mia risposta dalla http://stackoverflow.com/q/30184227/845849 –
Non voglio modificare la tabella revinfo Voglio solo usare la revisione come relazione con un'altra tabella. –
Ahh ok capito in quel caso puoi semplicemente mappare l'entità di revisione predefinita (org.hibernate.envers.DefaultRevisionEntity) nella tabella delle entità richiesta. –