diff --git a/pom.xml b/pom.xml
index 9b00362..1952131 100755
--- a/pom.xml
+++ b/pom.xml
@@ -54,6 +54,11 @@
postgresql
runtime
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 19.8.0.0
+
org.projectlombok
lombok
diff --git a/src/main/java/com/example/mmad/testapp/command/UserCommandHandler.java b/src/main/java/com/example/mmad/testapp/command/UserCommandHandler.java
index a882cbd..d720cc3 100644
--- a/src/main/java/com/example/mmad/testapp/command/UserCommandHandler.java
+++ b/src/main/java/com/example/mmad/testapp/command/UserCommandHandler.java
@@ -22,7 +22,7 @@ public class UserCommandHandler {
userEntity.setId(createUserCommand.getUserId());
userEntity.setUserName(createUserCommand.getUserName());
userEntity.setEmail(createUserCommand.getEmail());
-// userRepository.save(userEntity);
+ userRepository.save(userEntity);
UserCreatedEvent event = new UserCreatedEvent(
userEntity.getId(),
userEntity.getUserName(),
diff --git a/src/main/java/com/example/mmad/testapp/entity/UserEntity.java b/src/main/java/com/example/mmad/testapp/entity/UserEntity.java
index d8fc944..f83f360 100755
--- a/src/main/java/com/example/mmad/testapp/entity/UserEntity.java
+++ b/src/main/java/com/example/mmad/testapp/entity/UserEntity.java
@@ -8,18 +8,18 @@ import static jakarta.persistence.GenerationType.SEQUENCE;
@Entity
@Getter
@Setter
-@Table(schema = "testapp", name = "user")
+@Table(schema = "TEST", name = "USERS")
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UserEntity {
@Id
- @SequenceGenerator(name = "seqTest", sequenceName = "testapp.person_seq", allocationSize = 1)
+ @SequenceGenerator(name = "seqTest", sequenceName = "USER_SEQ", allocationSize = 1)
@GeneratedValue(strategy = SEQUENCE, generator = "seqTest")
private Long id;
@Column(name = "user_name")
private String userName;
@Column(name = "email")
private String email;
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/mmad/testapp/entity/UserQueryEntity.java b/src/main/java/com/example/mmad/testapp/entity/UserQueryEntity.java
new file mode 100755
index 0000000..d385af5
--- /dev/null
+++ b/src/main/java/com/example/mmad/testapp/entity/UserQueryEntity.java
@@ -0,0 +1,26 @@
+package com.example.mmad.testapp.entity;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
+import lombok.*;
+
+@Entity
+@Getter
+@Setter
+@Table(schema = "TEST", name = "USERS_QUERY")
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserQueryEntity {
+
+ @Id
+// @SequenceGenerator(name = "seqTest", sequenceName = "USER_SEQ", allocationSize = 1)
+// @GeneratedValue(strategy = SEQUENCE, generator = "seqTest")
+ private Long id;
+ @Column(name = "user_name")
+ private String userName;
+ @Column(name = "email")
+ private String email;
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/mmad/testapp/query/UserQueryHandler.java b/src/main/java/com/example/mmad/testapp/query/UserQueryHandler.java
index b523a52..ef5b837 100644
--- a/src/main/java/com/example/mmad/testapp/query/UserQueryHandler.java
+++ b/src/main/java/com/example/mmad/testapp/query/UserQueryHandler.java
@@ -1,27 +1,34 @@
package com.example.mmad.testapp.query;
+import com.example.mmad.testapp.entity.UserQueryEntity;
import com.example.mmad.testapp.event.UserCreatedEvent;
import com.example.mmad.testapp.kafkaProducerConfig.KafkaProducerConfig;
+import com.example.mmad.testapp.repository.UserReadRepository;
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
-import java.util.List;
-
@Component
public class UserQueryHandler {
private static final String kafkaTopic = "user-created";
private final KafkaProducerConfig kafkaProducer;
+ private final UserReadRepository userReadRepository;
- public UserQueryHandler(KafkaProducerConfig kafkaProducer) {
+ public UserQueryHandler(KafkaProducerConfig kafkaProducer, UserReadRepository userReadRepository) {
this.kafkaProducer = kafkaProducer;
+ this.userReadRepository = userReadRepository;
}
@Async("taskExecutor")
@EventListener
public void handelUserCreated(UserCreatedEvent event) {
kafkaProducer.kafkaTemplate().send(kafkaTopic, event);
- // persist in query data base
+ UserQueryEntity userQueryEntity = new UserQueryEntity();
+ userQueryEntity.setId(event.getUserId());
+ userQueryEntity.setUserName(event.getUsername());
+ userQueryEntity.setEmail(event.getEmail());
+ //TODO mapper needed
+ userReadRepository.save(userQueryEntity);
System.out.println("Received user created event" + event.getUserId());
}
}
diff --git a/src/main/java/com/example/mmad/testapp/repository/UserReadRepository.java b/src/main/java/com/example/mmad/testapp/repository/UserReadRepository.java
index 89bf1fb..984c439 100755
--- a/src/main/java/com/example/mmad/testapp/repository/UserReadRepository.java
+++ b/src/main/java/com/example/mmad/testapp/repository/UserReadRepository.java
@@ -1,9 +1,9 @@
package com.example.mmad.testapp.repository;
-import com.example.mmad.testapp.entity.PersonEntity;
+import com.example.mmad.testapp.entity.UserQueryEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
-public interface UserReadRepository extends JpaRepository {
+public interface UserReadRepository extends JpaRepository {
}
diff --git a/src/main/resources/db/changelog/changes/oracleLiquibases/liquibase-1.1.xml b/src/main/resources/db/changelog/changes/oracleLiquibases/liquibase-1.1.xml
new file mode 100755
index 0000000..c40b4f7
--- /dev/null
+++ b/src/main/resources/db/changelog/changes/oracleLiquibases/liquibase-1.1.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/db/changelog/changes/oracleLiquibases/liquibase-1.2.xml b/src/main/resources/db/changelog/changes/oracleLiquibases/liquibase-1.2.xml
new file mode 100755
index 0000000..4ee5421
--- /dev/null
+++ b/src/main/resources/db/changelog/changes/oracleLiquibases/liquibase-1.2.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/db/changelog/changes/liquibase-1.1.xml b/src/main/resources/db/changelog/changes/postgresLiquibases/liquibase-1.1.xml
similarity index 100%
rename from src/main/resources/db/changelog/changes/liquibase-1.1.xml
rename to src/main/resources/db/changelog/changes/postgresLiquibases/liquibase-1.1.xml
diff --git a/src/main/resources/db/changelog/changes/liquibase-1.2.xml b/src/main/resources/db/changelog/changes/postgresLiquibases/liquibase-1.2.xml
similarity index 100%
rename from src/main/resources/db/changelog/changes/liquibase-1.2.xml
rename to src/main/resources/db/changelog/changes/postgresLiquibases/liquibase-1.2.xml
diff --git a/src/main/resources/db/changelog/liquibase-master.xml b/src/main/resources/db/changelog/liquibase-master.xml
index 8934557..41ab05c 100755
--- a/src/main/resources/db/changelog/liquibase-master.xml
+++ b/src/main/resources/db/changelog/liquibase-master.xml
@@ -4,7 +4,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">
-
-
+
+