I am planning to use Redis with Redisson as a caching layer between my Java app and a PostgreSQL DB. I have a table called Nodes looking like this:
CREATE TABLE nodes
(
node_id bigint GENERATED BY DEFAULT AS IDENTITY(START WITH 1 INCREMENT BY 1),
node_name varchar(100) NOT NULL,
PRIMARY KEY (node_id)
)
I want to use Redisson RMap persistence to cache this structure. My goal is to have an rmap looking like this:
Rmap<Integer, Node>
where the key is the PK, and the value is the node itself.
I want to use read-through and write-trhough strategies for caching this Rmap, by using the MapLoader and the MapWriter.
Then, I want to have a Java method which should create and persist a node.
public void createNode(String nodeName) {
Node node = new Node();
node.setName(nodeName);
// how can I put elements in the rmap since,
// the PK will be available after the INSERT statement will run?
rmap.put(?, node);
}
And here comes the problem. Since the PK is auto-generated from Postgres, how can I use the RMapWriter to insert a node, since, for putting elements in the RMap I need the key, which I don't have until the insert statement will run?