Im die Prüfung der Umsetzung basiert auf [1], aber ich bin nicht Erfolg immer mit @createdBy
und @ModifiedBy
Frühling Revision - Daten zu lange auf createdBy
@Entity
@EntityListeners(AuditingEntityListener.class)
@Table(name = "entity")
public class myEntity {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer idMyEntity;
@Column(unique=true)
private String nome;
@CreatedBy
private UserEntity userCreated;
@LastModifiedBy
private UserEntity userModified;
... getters and setters
}
Und mein AudityAware ist:
public class AuditorAwareImp implements AuditorAware<UserEntity> {
public UserEntity getCurrentAuditor() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication == null || !authentication.isAuthenticated()) {
return null;
}
System.out.println((UserEntity) authentication.getPrincipal());
return ((UserEntity) authentication.getPrincipal());
}
}
Und meine Bohne ist:
@Bean
public AuditorAware<UserEntity> auditorAware() {
return new AuditorAwareImp();
}
Wenn ich debuggen, sehe ich die userEntity wie erwartet geladen, aber wenn JPA rettet, rettet es die .toString() statt UserEntity @Id
, die nicht korrekt ist ... mir einen Fehler geben:
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'userCreated' at row 1
Warum passiert es und wie wird es repariert?