Entity Listener-2/クイックキャンパスチャレンジ09日目
2503 ワード
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
Reference
この問題について(Entity Listener-2/クイックキャンパスチャレンジ09日目), 我々は、より多くの情報をここで見つけました https://velog.io/@mangojuice/Entity-Listener-2-패스트캠퍼스-챌린지-09일차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol