Interface SymbolRepository
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<Symbol,Long>, org.springframework.data.jpa.repository.JpaRepository<Symbol, Long>, org.springframework.data.jpa.repository.JpaSpecificationExecutor<Symbol>, org.springframework.data.repository.ListCrudRepository<Symbol, Long>, org.springframework.data.repository.ListPagingAndSortingRepository<Symbol, Long>, org.springframework.data.repository.PagingAndSortingRepository<Symbol, Long>, org.springframework.data.repository.query.QueryByExampleExecutor<Symbol>, org.springframework.data.repository.Repository<Symbol, Long>
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.data.jpa.repository.JpaSpecificationExecutor
org.springframework.data.jpa.repository.JpaSpecificationExecutor.SpecificationFluentQuery<T> -
Method Summary
Modifier and TypeMethodDescriptionfindSymbolByIdentity(String ticker, String exchangeMic, SymbolType type) Returns aSymbolfor the given composite symbol identity.findSymbolsByName(String name) findSymbolsByRevision(SymbolRevision revision) findSymbolsByTicker(String ticker) findSymbolsByTickerAndExchangeMic(String ticker, String exchangeMic) intupsertSymbol(String name, String ticker, String description, String website, boolean active, String type, String revision, Long exchangeId) Inserts or updates an existingSymbol.Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, deleteAll, deleteAll, deleteAllById, deleteById, existsById, findById, saveMethods inherited from interface org.springframework.data.jpa.repository.JpaRepository
deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlushMethods inherited from interface org.springframework.data.jpa.repository.JpaSpecificationExecutor
count, count, delete, delete, exists, exists, findAll, findAll, findAll, findAll, findAll, findBy, findBy, findOne, findOne, updateMethods inherited from interface org.springframework.data.repository.ListCrudRepository
findAll, findAllById, saveAllMethods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.PagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor
count, exists, findAll, findBy, findOne
-
Method Details
-
findSymbolsByName
-
findSymbolsByTicker
-
findSymbolsByTickerAndExchangeMic
-
findSymbolByIdentity
@Query("SELECT s\nFROM Symbol s\nJOIN s.exchange e\nWHERE LOWER(s.ticker) = LOWER(:ticker)\n AND LOWER(e.mic) = LOWER(:exchangeMic)\n AND s.type = :type\n") Optional<Symbol> findSymbolByIdentity(@Param("ticker") String ticker, @Param("exchangeMic") String exchangeMic, @Param("type") SymbolType type) Returns aSymbolfor the given composite symbol identity.- Parameters:
ticker- symbol tickerexchangeMic- exchange MICtype-SymbolType- Returns:
- optional
Symbol
-
findSymbolsByRevision
- Parameters:
revision-SymbolRevision- Returns:
ListofSymbols
-
upsertSymbol
@Modifying(flushAutomatically=true) @Transactional @Query(value=" INSERT INTO symbols (\n name,\n ticker,\n description,\n website,\n active,\n type,\n revision,\n exchange_id\n )\n VALUES (\n :name,\n :ticker,\n :description,\n :website,\n :active,\n :type,\n :revision,\n :exchangeId\n )\n ON CONFLICT (ticker, exchange_id, type)\n DO UPDATE SET\n name = EXCLUDED.name,\n description = EXCLUDED.description,\n website = EXCLUDED.website,\n active = EXCLUDED.active,\n revision = EXCLUDED.revision,\n modified_at = GREATEST(\n symbols.created_at,\n clock_timestamp() AT TIME ZONE 'UTC'\n )\n WHERE\n symbols.name IS DISTINCT FROM EXCLUDED.name\n OR symbols.description IS DISTINCT FROM EXCLUDED.description\n OR symbols.website IS DISTINCT FROM EXCLUDED.website\n OR symbols.active IS DISTINCT FROM EXCLUDED.active\n OR symbols.revision IS DISTINCT FROM EXCLUDED.revision\n", nativeQuery=true) int upsertSymbol(@Param("name") String name, @Param("ticker") String ticker, @Param("description") String description, @Param("website") String website, @Param("active") boolean active, @Param("type") String type, @Param("revision") String revision, @Param("exchangeId") Long exchangeId) Inserts or updates an existingSymbol.- Parameters:
name- symbol nameticker- symbol tickerdescription- descriptionwebsite- websiteactive- activetype- typerevision- revisionexchangeId- exchange id- Returns:
- number of entries inserted or updated
-