我计划使用Redis和Redisson作为我的Java应用程序和PostgreSQL DB之间的缓存层。我有一个名为Nodes的表,如下所示:
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)
)
我想使用Redisson RMap持久性来缓存这个结构。我的目标是使rmap如下所示:
Rmap<Integer, 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);
}
问题来了。既然PK是从Postgres自动生成的,那么我如何使用RMapWriter来插入节点呢?因为,为了将元素放入RMap中,我需要一个键,而在insert语句运行之前,我没有这个键?
您可以使用prepared语句从postgres获得生成的密钥。
ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS) ;
ps.execute();
ResultSet rs = ps.getGeneratedKeys();
问题内容: 我想将用户持久保存到数据库中,并使用IDENTITY生成类型创建的User的ID(PK)的当前方案。例如 但我想在以下情况下进行操作:1)用户明确设置。2)如果未设置用户,则将自动分配它,并且它必须是唯一的。 请建议我一些可用的选项,以便我解决。谢谢。 问题答案: 您可以为此目的定义您的自定义ID生成器,如本SOAnswer中指出的那样 它的代码如下所示: 和
我启用了 为了让Hibernate自动生成数据库,我创建了一个UpperCaseNamingStrategy.java扩展org.Hibernate.cfg.PromedNamingStrategy。 根据https://docs.jboss.org/hibernate/orm/5.0/manual/en-us/html_single/#configuration-namingstrategy 在
这类似于这个问题,但我们用Gradle代替。假设我们在构建脚本中直接使用jOOQ的代码生成,正如文档中所描述的那样。 有两个问题。首先,我们将向生成器配置中添加一个新的策略,这应该很简单: 然而,如果我们打印得到的XML配置,名称元素就会被神秘地省略(也会被悄悄地省略): 其次,可以使用什么机制来预编译生成器策略类()并使其在构建脚本的类路径中可用?这里有一个可能的问题:策略代码依赖于jOOQ的c
使用jOOQ,我可能希望将jOOQ代码生成器与Maven和自定义生成器策略结合使用。看起来这可以这样做(省略不相关的部分): 上面的配置描述了问题。jOOQ的代码生成器挂钩到Maven生命周期的生成目标,它发生在生命周期的编译目标之前。但是,对于代码生成,它需要一个预编译的自定义策略类,否则我会得到一个。如何使用Maven解决这个问题?我可以在执行目标之前编译单个类吗?
我有 我怎样才能从(x,y)得到一个7x10的矩阵,但每一行都是从前面的一行加1得到的?例如,第一行是 0,1,2,3,4,5,6 第二排 1,2,3,4,5,6,7 等等
问题内容: 我正在尝试检查目录是否存在,如果发生这种情况,我想给它另一个数字,例如,如果“ folderX”存在,那么我想创建一个新的名为“ FolderX1”的文件夹这样做一次,因为我在这样的if / else语句中拥有它: 我要递归地执行此操作,如果程序检测到“ folderX”存在,则应跳转并检查其他文件夹(folderX,FolderX1,FolderX2等),直到找到可以创建的文件夹,但