Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA执行查询,但未插入数据_Java_Mysql_Jpa_Playframework_Playframework 2.3 - Fatal编程技术网

Java JPA执行查询,但未插入数据

Java JPA执行查询,但未插入数据,java,mysql,jpa,playframework,playframework-2.3,Java,Mysql,Jpa,Playframework,Playframework 2.3,我正在使用Play2.3并绑定以持久化一个对象。控制台显示查询,但数据未插入数据库 @Entity @Table(name = "confrence_group") public class ConfrenceGroup { @Id @Column(name = "id", length = 50, unique = true, nullable = false, insertable = false, updatable = false) @GeneratedValue

我正在使用Play2.3并绑定以持久化一个对象。控制台显示查询,但数据未插入数据库

@Entity
@Table(name = "confrence_group")
public class ConfrenceGroup {
    @Id
    @Column(name = "id", length = 50, unique = true, nullable = false, insertable = false, updatable = false)
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Constraints.Required
    @Column(columnDefinition = "varchar(25) default ''")
    private String name;

    @Column(columnDefinition = "int default 0")
    private int active = 1;

    @JsonIgnore
    @ManyToOne
    private User user;

    @Formats.DateTime(pattern = "yyyy-MM-dd HH:mm:yy")
    @Column(columnDefinition = "TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP")
    private Date createdTime;

    @Column(unique = true)
    private String uid = (new UniqueToken()).nextSessionId();
}
persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">

    <persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <non-jta-data-source>DefaultDS</non-jta-data-source>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <property name="javax.persistence.sql-load-script-source"
                      value="META-INF/sql/data.sql"/>
        </properties>

    </persistence-unit>

</persistence>
从日志中我可以看到

插入confrence_组(活动、createdTime、name、uid、user_id)值(1、'93类SQL NULL'、'akkk'、'1474449665379l2urhrti496h0hoplm9cs55srj',1)

尝试将其更改为本机查询

String sql=“插入会话组(
active
name
uid
用户id
)值(?,,?)”

日志

但在这两种情况下,当我通过数据库gui进行检查时,并没有将数据插入表中,也并没有例外。代码在早期工作,但我不知道是什么导致它的行为像这样

有人能帮忙吗


编辑:尝试创建新模型,但问题相同。

Mysql似乎自动生成您的id,因此您需要
@GeneratedValue(strategy=GenerationType.AUTO)
更改为
@GeneratedValue(strategy=GenerationType.IDENTITY)

是否检查了数据库配置中的自动提交设置?无法为自动提交设置任何数据库配置。您能告诉我如何设置吗?因为在我阅读的过程中,jpa中不需要自动提交,而且它以前工作得比较好,但现在不工作。您可能正在junit测试中执行此查询@事务测试在事务完成后默认情况下回滚事务。@mateuszlo否我不是从JUnit运行它事务在哪里?仍然是相同的输出您确定您的“id”列是自动递增的吗?可能需要用户id 1存在,因为我知道它在早期工作,是的用户id存在,所以您的事务显然不存在犯罪在方法上使用@Transactional(来自play.db.jpa.Transactional包),并查看:[
JPA.em().persist(confGroupObjectReference)
   try {
        JPA.em().createNativeQuery(sql)
                .setParameter(1, 1)
                .setParameter(2, confo.getName())
                .setParameter(3, confo.getUid())
                .setParameter(4, user_id)
                .executeUpdate();
    } catch (Exception e) {
        e.printStackTrace();
    }
 insert into confrence_group (`active`, `name`, `uid`, `user_id`) values (1, 'akkk', '1474443561160ojedp25m5k01e5k1kc7jg39l6p', 1)