Dans mon projet, j'utilise hibernate Envers (version 4.3.7) avec Spring et MySql (version 5.6.25) pour auditer certaines entités.HIbernate Envers @AuditMappedBy cause SQLException: index de paramètre hors plage
Ceci est mon exemple:
@Audited
@Entity
@Table(name = "ticket")
public class Ticket implements java.io.Serializable {
....
private List<Payment> payments = new ArrayList<>(0);
....
@OneToMany(fetch = FetchType.LAZY, mappedBy = "ticket")
@AuditMappedBy(mappedBy = "ticket")
public List<Payment> getPayments() {
return this.payments;
}
public void setPayments(List<Payment> payments) {
this.payments= payments;
}
...
}
@Audited
@Entity
@Table(name = "payment")
public class Payment implements java.io.Serializable {
....
private Ticket ticket;
private Long ticketId;
....
@Column(name = "TICKET_ID", nullable = false)
public Long getTicketId() {
return ticketId;
}
public void setTicketId(Long ticketId) {
this.ticketId = ticketId;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "TICKET_ID", nullable = false, insertable = false, updatable = false)
public Ticket getTicket() {
return this.ticket;
}
public void setTicket(TktTicket ticket) {
this.ticket= ticket;
}
......
}
lorsque vous essayez d'insérer un nouveau ticket le système retourne l'exception:
org.hibernate.exception.GenericJDBCException: n'a pas pu insérer: .. ... causés par: java.sql.SQLException: Index de paramètres hors de portée (19> nombre de paramètres, ce qui est 18)
Une certaine idée?
Vous avez une erreur dans votre index de base de données, vous pouvez changer votre index puis essayez d'insérer à nouveau, bonne chance –
Désolé, pouvez-vous me donner un exemple? Je n'ai pas compris votre commentaire. Réservoirs. –
Testez ceci et si vous ne réussissez pas ALTER TABLE your_table AUTO_INCREMENT = 20; SAUF comment paramettre avez-vous dans vos entités? –