Entity Listener-2/クイックキャンパスチャレンジ09日目


User Entity History


User Entityでは、User Dataが含まれているため重要度が高い.
修正後の履歴を作成するHistory
ユーザーズ・ヒストリーというエンディングをもう一つ作ろうUser History
@Entity
@NoArgsConstructor
@Data
public class UserHistory {
	@Id
	@GeneratedValue
    private Long id;
    private Long userId;
    private String name;
    private String email;
    private LocalDateTime createdAt;
    private LocalDateTime updatedAt;
    }
UserEntityListener (class)
@Component //Spring에 Bean으로 등록하기 위해 선언
public class UserEntityListener {

	@AutoWired
	private final UserHistoryRepository userHistroyRepository;
	
	@PreUpdate
	public void preUpdate(Object o){
    		User user = (User) o ;
        
        	UserHistory userHistory = new UserHistory();
        	userHistory.setUserId(user.getId());
        	userHistory.setName(user.getName());
        	userHistory.setEmail(User.getEmail());
    
    		userHistoryRepository.save(userHistory);
	}
UserHistoryRepository (interface)
public interface UserInterfaceRepository extends JpaRepository<UserHistory, Long>{

}
UserRepositoryTest
@Test
void userHistoryTest(){
	User user = new User();
	user.setEmail("[email protected]");
	user.setName("martin");

	userRepository.save(user);
    
	user.setName("martin-new-new");
    
	userRepository.save(user);
    
	userHistory.findAll().forEach(System.out::println);
	}
}
その他の機能の説明@EnableJpaAuditing:Jpaがデフォルトで提供するListenerツール
使用する場合、DTOは@EntityListeners(value=AuditionEntityListener.class)を宣言する必要があります.
レビューによる各データへの割り当て
@CreatedDate
private LocalDateTime createdAt;
@LastModifiedDate
private LocalDateTime updatedAt;
これにより自動的に値が割り当てられます.
`MappedSuperClass'
:このクラスのフィールドを継承されたEntityの列として含めます.
: Entity

#クイックキャンパス#パカムチャレンジ#サラリーマン姜#職場人柄マシン脚#クイックキャンパス後期#使い捨て終了Java/spring Web開発Master超差パッケージオンライン
このレポートは、迅速なキャンパス税還付の課題に参加することを目的としています.
https://bit.ly/3FVdhDa