fix(entity): appeler super.onCreate() dans SystemLog pour peupler dateCreation
Problème : SystemLog override @PrePersist sans appeler parent Conséquence : dateCreation restait NULL → erreur PostgreSQL constraint violation Solution : Ajout super.onCreate() pour déclencher BaseEntity.onCreate() Fixes: null value in column date_creation violates not-null constraint Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
package dev.lions.unionflow.server.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* Entité pour les logs techniques du système.
|
||||
* Enregistre les erreurs, warnings, et événements système.
|
||||
*
|
||||
* @author UnionFlow Team
|
||||
* @version 1.0
|
||||
* @since 2026-03-15
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "system_logs", indexes = {
|
||||
@Index(name = "idx_system_log_timestamp", columnList = "timestamp"),
|
||||
@Index(name = "idx_system_log_level", columnList = "level"),
|
||||
@Index(name = "idx_system_log_source", columnList = "source"),
|
||||
@Index(name = "idx_system_log_user_id", columnList = "user_id")
|
||||
})
|
||||
@Getter
|
||||
@Setter
|
||||
public class SystemLog extends BaseEntity {
|
||||
|
||||
/**
|
||||
* Niveau du log (CRITICAL, ERROR, WARNING, INFO, DEBUG)
|
||||
*/
|
||||
@Column(name = "level", nullable = false, length = 20)
|
||||
private String level;
|
||||
|
||||
/**
|
||||
* Source du log (Database, API, Auth, System, Cache, etc.)
|
||||
*/
|
||||
@Column(name = "source", nullable = false, length = 100)
|
||||
private String source;
|
||||
|
||||
/**
|
||||
* Message principal du log
|
||||
*/
|
||||
@Column(name = "message", nullable = false, length = 1000)
|
||||
private String message;
|
||||
|
||||
/**
|
||||
* Détails supplémentaires (stacktrace, contexte, etc.)
|
||||
*/
|
||||
@Column(name = "details", columnDefinition = "TEXT")
|
||||
private String details;
|
||||
|
||||
/**
|
||||
* Date/heure du log
|
||||
*/
|
||||
@Column(name = "timestamp", nullable = false)
|
||||
private LocalDateTime timestamp;
|
||||
|
||||
/**
|
||||
* Identifiant de l'utilisateur concerné (optionnel)
|
||||
*/
|
||||
@Column(name = "user_id", length = 255)
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* Adresse IP de la requête (optionnel)
|
||||
*/
|
||||
@Column(name = "ip_address", length = 45)
|
||||
private String ipAddress;
|
||||
|
||||
/**
|
||||
* Identifiant de session (optionnel)
|
||||
*/
|
||||
@Column(name = "session_id", length = 255)
|
||||
private String sessionId;
|
||||
|
||||
/**
|
||||
* Endpoint HTTP concerné (optionnel)
|
||||
*/
|
||||
@Column(name = "endpoint", length = 500)
|
||||
private String endpoint;
|
||||
|
||||
/**
|
||||
* Code de statut HTTP (optionnel)
|
||||
*/
|
||||
@Column(name = "http_status_code")
|
||||
private Integer httpStatusCode;
|
||||
|
||||
/**
|
||||
* Initialisation automatique du timestamp
|
||||
*/
|
||||
@PrePersist
|
||||
protected void onCreate() {
|
||||
super.onCreate(); // Appel du @PrePersist de BaseEntity (dateCreation, actif)
|
||||
if (timestamp == null) {
|
||||
timestamp = LocalDateTime.now();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user