Skip to content

Commit

Permalink
feat: polish entityviews multiselect
Browse files Browse the repository at this point in the history
  • Loading branch information
rajadilipkolli committed Jan 29, 2024
1 parent de95299 commit 730a00c
Show file tree
Hide file tree
Showing 15 changed files with 296 additions and 283 deletions.
3 changes: 0 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,16 +53,13 @@ dependencies {
runtimeOnly "com.h2database:h2"
runtimeOnly "org.postgresql:postgresql"
implementation "org.liquibase:liquibase-core"
implementation 'io.hypersistence:hypersistence-utils-hibernate-63:3.7.0'

// Blaze Persistance
implementation('com.blazebit:blaze-persistence-integration-spring-data-3.1')
implementation('com.blazebit:blaze-persistence-integration-hibernate-6.2')
implementation('com.blazebit:blaze-persistence-integration-entity-view-spring-6.0')

implementation "org.springdoc:springdoc-openapi-starter-webmvc-ui:${springdoc_openapi_version}"
implementation "org.apache.commons:commons-lang3"
implementation "commons-io:commons-io:${commons_io_version}"
runtimeOnly "io.micrometer:micrometer-registry-prometheus"
implementation("net.ttddyy.observation:datasource-micrometer-spring-boot:1.0.3")

Expand Down
2 changes: 0 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ spotless_version=6.25.0
jacoco_min_coverage_required=0.80

spring_boot_version=3.2.2
spring_cloud_version=2023.0.0
blaze_persistence_version=1.6.11
spring_dependency_management_version=1.1.4
commons_io_version=2.15.1
springdoc_openapi_version=2.3.0

Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;

@Configuration
@Configuration(proxyBeanMethods = false)
@EnableEntityViews(basePackages = {"com.learning.mfscreener.models.entityviews"})
@EnableBlazeRepositories(basePackages = "com.learning.mfscreener.repository")
public class BlazePersistenceConfiguration {
Expand All @@ -42,15 +42,15 @@ public class BlazePersistenceConfiguration {
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
@Lazy(false)
public CriteriaBuilderFactory createCriteriaBuilderFactory() {
CriteriaBuilderFactory createCriteriaBuilderFactory() {
CriteriaBuilderConfiguration config = Criteria.getDefault();
return config.createCriteriaBuilderFactory(entityManagerFactory);
}

@Bean
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
@Lazy(false)
public EntityViewManager createEntityViewManager(
EntityViewManager createEntityViewManager(
CriteriaBuilderFactory cbf, EntityViewConfiguration entityViewConfiguration) {
return entityViewConfiguration.createEntityViewManager(cbf);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
public class RestTemplateConfiguration {

@Bean
public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) {
RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) {
return restTemplateBuilder.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
public class AuditConfiguration {

@Bean
public AuditorAware<String> auditorAware() {
AuditorAware<String> auditorAware() {
return new EntityAuditorAware();
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.learning.mfscreener.models.entityviews;

import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.FetchStrategy;
import com.blazebit.persistence.view.IdMapping;
import com.blazebit.persistence.view.Mapping;
import com.learning.mfscreener.entities.CasTypeEnum;
import com.learning.mfscreener.entities.FileTypeEnum;
import com.learning.mfscreener.entities.UserCASDetailsEntity;
Expand Down Expand Up @@ -30,5 +32,6 @@ public interface UserCASDetailsEntityView {

InvestorInfoEntityView getInvestorInfoEntity();

@Mapping(fetch = FetchStrategy.MULTISET)
List<UserFolioDetailsEntityView> getFolioEntities();
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.learning.mfscreener.models.entityviews;

import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.FetchStrategy;
import com.blazebit.persistence.view.IdMapping;
import com.blazebit.persistence.view.Mapping;
import com.learning.mfscreener.entities.UserFolioDetailsEntity;
import java.time.LocalDateTime;
import java.util.List;
Expand Down Expand Up @@ -30,5 +32,6 @@ public interface UserFolioDetailsEntityView {

String getKyc();

@Mapping(fetch = FetchStrategy.MULTISET)
List<UserSchemeDetailsEntityView> getSchemeEntities();
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.learning.mfscreener.models.entityviews;

import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.FetchStrategy;
import com.blazebit.persistence.view.IdMapping;
import com.blazebit.persistence.view.Mapping;
import com.learning.mfscreener.entities.UserSchemeDetailsEntity;
import java.time.LocalDateTime;
import java.util.List;
Expand Down Expand Up @@ -42,5 +44,6 @@ public interface UserSchemeDetailsEntityView {

String getCloseCalculated();

@Mapping(fetch = FetchStrategy.MULTISET)
List<UserTransactionDetailsEntityView> getTransactionEntities();
}
88 changes: 45 additions & 43 deletions src/main/resources/db/changelog/migration/02-user_cas_details.xml
Original file line number Diff line number Diff line change
@@ -1,43 +1,45 @@
<databaseChangeLog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.20.xsd">

<property name="string.type" value="varchar(255)" dbms="!postgresql"/>
<property name="string.type" value="text" dbms="postgresql"/>

<changeSet author="appUser" id="create-sequence-user_cas_details_seq">
<preConditions onFail="MARK_RAN">
<not>
<sequenceExists sequenceName="user_cas_details_seq"/>
</not>
</preConditions>
<createSequence sequenceName="user_cas_details_seq"
startValue="1"
incrementBy="50"/>
</changeSet>

<changeSet author="appUser" id="create-table-user_cas_details">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="user_cas_details"/>
</not>
</preConditions>
<createTable tableName="user_cas_details">
<column name="id" type="bigint" autoIncrement="true">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="cas_type" type="${string.type}">
<constraints nullable="false"/>
</column>
<column name="file_type" type="${string.type}">
<constraints nullable="false"/>
</column>
<column name="created_by" type="${string.type}"/>
<column name="created_date" type="timestamp"/>
<column name="last_modified_by" type="${string.type}"/>
<column name="last_modified_date" type="timestamp"/>
</createTable>
</changeSet>

</databaseChangeLog>
<databaseChangeLog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.20.xsd">

<property name="string.type" value="varchar(255)" dbms="!postgresql"/>
<property name="string.type" value="text" dbms="postgresql"/>
<property name="timestamp.type" value="timestamp" dbms="!postgresql"/>
<property name="timestamp.type" value="timestamptz" dbms="postgresql"/>

<changeSet author="appUser" id="create-sequence-user_cas_details_seq">
<preConditions onFail="MARK_RAN">
<not>
<sequenceExists sequenceName="user_cas_details_seq"/>
</not>
</preConditions>
<createSequence sequenceName="user_cas_details_seq"
startValue="1"
incrementBy="50"/>
</changeSet>

<changeSet author="appUser" id="create-table-user_cas_details">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="user_cas_details"/>
</not>
</preConditions>
<createTable tableName="user_cas_details">
<column name="id" type="bigint" autoIncrement="true">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="cas_type" type="${string.type}">
<constraints nullable="false"/>
</column>
<column name="file_type" type="${string.type}">
<constraints nullable="false"/>
</column>
<column name="created_by" type="${string.type}"/>
<column name="created_date" type="${timestamp.type}"/>
<column name="last_modified_by" type="${string.type}"/>
<column name="last_modified_date" type="${timestamp.type}"/>
</createTable>
</changeSet>

</databaseChangeLog>
128 changes: 65 additions & 63 deletions src/main/resources/db/changelog/migration/03-user-folio-details.xml
Original file line number Diff line number Diff line change
@@ -1,63 +1,65 @@
<databaseChangeLog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.20.xsd">

<property name="string.type" value="VARCHAR(255)" dbms="!postgresql"/>
<property name="string.type" value="text" dbms="postgresql"/>

<changeSet author="appUser" id="create-user_folio_details_seq">
<preConditions onFail="MARK_RAN">
<not>
<sequenceExists sequenceName="user_folio_details_seq"/>
</not>
</preConditions>
<createSequence sequenceName="user_folio_details_seq"
startValue="1"
incrementBy="50"/>
</changeSet>

<changeSet id="create_table_user_folio_details" author="appUser">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="user_folio_details"/>
</not>
</preConditions>
<createTable tableName="user_folio_details">
<column name="id" type="BIGINT" autoIncrement="true">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="folio" type="${string.type}">
<constraints nullable="false"/>
</column>
<column name="amc" type="${string.type}">
<constraints nullable="false"/>
</column>
<column name="pan" type="${string.type}">
<constraints nullable="false"/>
</column>
<column name="kyc" type="${string.type}"/>
<column name="pan_kyc" type="${string.type}"/>
<column name="user_cas_details_id" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="created_by" type="${string.type}"/>
<column name="created_date" type="timestamp"/>
<column name="last_modified_by" type="${string.type}"/>
<column name="last_modified_date" type="timestamp"/>
</createTable>
</changeSet>

<changeSet id="addForeignKeyConstraint_user_folio_details" author="appUser">
<preConditions>
<not>
<foreignKeyConstraintExists foreignKeyName="FK_USER_FOLIO_DETAILS_ON_USER_CAS_DETAILS"/>
</not>
</preConditions>
<addForeignKeyConstraint baseTableName="user_folio_details"
baseColumnNames="user_cas_details_id"
constraintName="FK_USER_FOLIO_DETAILS_ON_USER_CAS_DETAILS"
referencedTableName="user_cas_details"
referencedColumnNames="id"/>
</changeSet>

</databaseChangeLog>
<databaseChangeLog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.20.xsd">

<property name="string.type" value="VARCHAR(255)" dbms="!postgresql"/>
<property name="string.type" value="text" dbms="postgresql"/>
<property name="timestamp.type" value="timestamp" dbms="!postgresql"/>
<property name="timestamp.type" value="timestamptz" dbms="postgresql"/>

<changeSet author="appUser" id="create-user_folio_details_seq">
<preConditions onFail="MARK_RAN">
<not>
<sequenceExists sequenceName="user_folio_details_seq"/>
</not>
</preConditions>
<createSequence sequenceName="user_folio_details_seq"
startValue="1"
incrementBy="50"/>
</changeSet>

<changeSet id="create_table_user_folio_details" author="appUser">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="user_folio_details"/>
</not>
</preConditions>
<createTable tableName="user_folio_details">
<column name="id" type="BIGINT" autoIncrement="true">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="folio" type="${string.type}">
<constraints nullable="false"/>
</column>
<column name="amc" type="${string.type}">
<constraints nullable="false"/>
</column>
<column name="pan" type="${string.type}">
<constraints nullable="false"/>
</column>
<column name="kyc" type="${string.type}"/>
<column name="pan_kyc" type="${string.type}"/>
<column name="user_cas_details_id" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="created_by" type="${string.type}"/>
<column name="created_date" type="${timestamp.type}"/>
<column name="last_modified_by" type="${string.type}"/>
<column name="last_modified_date" type="${timestamp.type}"/>
</createTable>
</changeSet>

<changeSet id="addForeignKeyConstraint_user_folio_details" author="appUser">
<preConditions>
<not>
<foreignKeyConstraintExists foreignKeyName="FK_USER_FOLIO_DETAILS_ON_USER_CAS_DETAILS"/>
</not>
</preConditions>
<addForeignKeyConstraint baseTableName="user_folio_details"
baseColumnNames="user_cas_details_id"
constraintName="FK_USER_FOLIO_DETAILS_ON_USER_CAS_DETAILS"
referencedTableName="user_cas_details"
referencedColumnNames="id"/>
</changeSet>

</databaseChangeLog>
Loading

0 comments on commit 730a00c

Please sign in to comment.