java - SQL命令如何将值附加(插入)到数据库中

标签 java sql insert playframework-2.0

我的问题是如何在sql中将值插入到数据库中。我有一个可以拥有多个电子邮件的用户。如何将多封电子邮件插入到一个对象中?我不想将全新的用户对象添加到新行中。我只想更新并将新电子邮件附加到数据库中现有用户的电子邮件字段中。

我这样做了:

JPA.em().createQuery
        ("insert into User (email) select (email) from User where USERNAME=? VALUES (?)")
        .setParameter(1, username).setParameter(2, email).executeUpdate();

但它不起作用,感谢您的帮助!!

最佳答案

从数据库中获取用户,将其现有电子邮件与新值连接起来,然后保存用户。

JPA 使用实体并为您生成 SQL 查询。通常,您仅使用查询来从数据库中获取实体。这些查询是 JPQL 查询,而不是 SQL 查询。

看来您的架构未正确规范化。一个用户实体应该有许多电子邮件实体(OneToMany 关联),而不是将所有电子邮件填充到用户的单个 CLOB 字段中。您可以通过这种方式从数据库中搜索并获取单个电子邮件,如果您不需要用户,则可以获取没有所有电子邮件的用户。

关于java - SQL命令如何将值附加(插入)到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11272225/

相关文章:

java - 广告横幅未显示

java - Struts逻辑问题

sql - 带有 NULL 值的 Oracle SQL Case 语句

mysql - 独特的一栏

mysql - 将 MySQL 'update' 语句转换为 'insert' 语句

mysql - 不正确的整数值 : '' for column

java - 如何以编程方式获取通过 Wifi 连接到交换机网络的其他设备的 IP 地址?

sql - 在此示例中,表 "Pictures"的主键是什么

regex - sed 插入行命令 OSX

java - Java 中的 WebSocket 编程 : client server communication issue