Constraint and Index Declaration in Spring Data Neo4j 4.0.0 - indexing

I just want to clarify of what I read in the Spring Data Neo4j 4.0.0 documentation. So, the provided way to configure index & unique constraint is just by defining it directly in the web console using Cypher query, and no more inside the application (like what #indexing tag does previously). Is it correct?
Thank you in advance and your response would be really appreciated!

That's right. Index maintenance and configuration is not the responsibility of the OGM or Spring Data. It can be configured as you said via the shell, or you can use the Session/Neo4jTemplate.execute with your Cypher statement.

Neo4j’s schema indexes are used automatically by Cypher when set up in your database. Spring Data Neo4j (version 4) does not provide facilities for handling that setup out of the box.
its clearly mentioned in official docs,

Related

usage of Apache ignite as Key value data store

I am newbie to Apache Ignite. We are trying to explore Ignite as key value DB to be replaced with our existing Berkely DB in application.
Currently, Bekley DB is embedded in the application and db container operations are performed using Berkely DB apis , similar functionalities we would need for Ignite.
The idea is to replace berkley db apis to Ignite apis to use Ignite as key value DB.
I could not find any docs for the usage of ignite libraries to be used in the application.
Any help?
You can find a comprehensive documentation on data manipulation here: https://apacheignite.readme.io/docs/data-grid
Also you can find some examples of usage of Ignite API at the GitHub repository:
https://github.com/apache/ignite/blob/master/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheApiExample.java

For Grails Spring Security Core, what is the purpose of the VERSION fields in the USER, GROUP and ROLES tables?

I am using the Grails Spring Security Core plugin 2.0-RC4, and I noticed the VERSION field was created in each of the USER, GROUPS and ROLES tables. My database expert is asking me what the VERSION field is for and I could not find any explanation of that field. Can someone tell me what the VERSION field is used for, and how is it used?
The version property on all GORM managed classes is used for optimistic locking. You can read more about it in the documentation.

Execute sql statement before normal execution with aop

I'm trying to create a Multitenant application with spring.
I'm trying to have a different schema for each Tenant on a PostgreSql database.
I first created a TenantAwareDataSource extending org.springframework.jdbc.datasource.AbstractDataSource where basically I manage a Map of org.apache.commons.dbcp.BasicDataSource, configuring setConnectionInitSqls() for each tenant. (The datasource the project had before was org.apache.commons.dbcp.BasicDataSource)
But then discussing it with a friend, we came up with the idea of changing the schema for every statment executed with an aspect (aop), simply adding a set search_path to statement just before normal execution.
This could greatly simplify the problems related to having too many connections to the database (a connection pool for every tenant at any given time).
Has anybody executed additional statements using AOP?
Any pitfalls to overcome?
I'm thinking on put back org.apache.commons.dbcp.BasicDataSource and intercept java.sql.Statements.exe*(..)
I'm not very experienced with Spring persistence. Or SQL statement execution interception for that matter (haha).
Is it ok?
I found this article but I don't think I need to obtain a reference for each connection.
Am I right?
Also found this one. The author is using org.springframework.jdbc.core.JdbcOperations. Not sure it's the case in my Spring Roo generated project.
Thank you all.

Viewing a grails schema while it runs in memory?

I want to view a grails schema for the default hsqldb in-memory database, but when I connect to the in-memory databse with SquirrelSQL or DbVisualizer as userid: sa, password: (nothing), I only see two schemas:
INFORMATION_SCHEMA
PUBLIC
And neither contains my Domain tables. What's going on?
You need to set the hsqldb database to file, and set shutdown to true, as outlined here.
If you want to access the in-memory database, there's a writeup on how to do that here: http://act.ualise.com/blogs/continuous-innovation/2009/07/viewing-grails-in-memory-hsqldb/
There's also a new plugin that gives you access to a web-based database console that can access any database that you have a JDBC driver for, including the in-memory hsql db. The plugin docs are at http://grails.org/plugin/dbconsole and you install it the usual way, i.e. grails install-plugin dbconsole. Unfortunately the plugin has an artificial restriction to Grails 1.3.6+, so if you're using an older version of Grails you can use the approach from the blog post that inspired the plugin, http://burtbeckwith.com/blog/?p=446
To use the database console, select "Generic HSQLDB" from the settings dropdown and change the values to match what's in DataSource.groovy. This will probably just require changing the url to jdbc:hsqldb:mem:devDB
You need to set up a shared hsql database: Creating a shared HSQLDB database
edit: There is NO way to expose in-memory hsqldb. Either create a Server or WebServer or use file URL.

Has anyone built an nhibernate provider for Microsoft Index Server?

This may be an odd question! But I was wondering if anyone has ever attempted this. I guess the first question most people would ask is why!!
With index server you can add additional meta data to standard file information (name, size etc).
I want to be able to expose this information through to a BL component via nhibernate I need to write - so that when I replace the indexing, I don't have to rewrite the Business logic.
In theory, you would extract interface for indexing provider and then create a wrapper and wrap Micorosoft Index Server. Then when you have different provider, you create a wrapper for the new one and use IoC to inject implementation. I fail to see how NHibernate fits into this.