다음 링크에서 왔습니다 : https://stackoverflow.com/a/9372684/574460. 나는 이진 데이터를 데이터베이스에 저장할 때 그 코드를 일찍 놓은 링크에 저장했다. 더 빠른 참조를 위해 다시 입력하겠습니다.CRUD 모듈을 사용한 특별 업데이트
@Column(columnDefinition="BYTEA NOT NULL", nullable=false) @Password
public byte[] password;
@Required @Password @Transient
public String hash;
@ManyToOne
@Required
public Departamento departamento;
@PrePersist
@PreUpdate
public void hashPassword() throws Exception {
this.password = Crypto.passwordHash(this.hash, Crypto.HashType.SHA512).getBytes();
System.out.println(this.password);
}
이제 문제는 암호를 업데이트 할 수 없다는 것입니다. 빈 템플릿 에서처럼 데이터를 가져 오기 위해 쇼 템플릿을 변경했지만 단순히 데이터를 업데이트 할 수 없습니다. @PreUpdate 주석 추가 기능이 제대로 작동하지 않는 것 같습니다.
어떻게해야합니까? 모든 조언을 주시면 감사하겠습니다.
UPDATE :
@grahamrb이 sugested, 내가 데이터 만 저장하고 업데이트 할 수있는 set 메소드를 오버라이드 (override) 할 필요가 보인다. 감사합니다 @ grahamrb
() _ 메서드를 사용하고 거기에 해시 알고리즘이 있습니까? – grahamrb
어떻게해야합니까'code' public void setHash (String hash) { this.hash = Crypto.passwordHash (hash) .getBytes(); }'code'로 충분합니까? 나는 getter도해야합니까? – JuanToroMarty