Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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不会从包装对象向数据库添加Id_Java_Mysql_Jpa_Insert_Entitymanager - Fatal编程技术网

Java JPA不会从包装对象向数据库添加Id

Java JPA不会从包装对象向数据库添加Id,java,mysql,jpa,insert,entitymanager,Java,Mysql,Jpa,Insert,Entitymanager,使用JPA,我有一个dataconfiguration,它被添加到数据库中,没有任何问题: @Entity @Table(name = "dataConfigurations", uniqueConstraints = {@UniqueConstraint(columnNames = {"name"})}) @NamedQueries({@NamedQuery(name = "DataConfigurations.names", query = "SELECT d.name FRO

使用JPA,我有一个dataconfiguration,它被添加到数据库中,没有任何问题:

   @Entity @Table(name = "dataConfigurations", uniqueConstraints = {@UniqueConstraint(columnNames = {"name"})})
    @NamedQueries({@NamedQuery(name = "DataConfigurations.names", query = "SELECT d.name FROM DataConfiguration d"), @NamedQuery(name = "DataConfiguration.findByName", query = "SELECT d FROM DataConfiguration d WHERE d.name = :name")})
    public class DataConfiguration implements Serializable
    {

        @Transient
        private static final long serialVersionUID = 1L;
        @Id //@GeneratedValue(strategy = GenerationType.)
            //@TableGenerator(name = "dataConfigurationSequence", table = "Sequences", pkColumnName = "NameSequences", valueColumnName = "valueSequence", pkColumnValue = "dataConfigurationId")
        private long id;
        @OneToMany(mappedBy = "dataConfiguration", cascade = CascadeType.ALL)
        private List<Content> contents; // "Data" is a reserved SQL word.
        @ManyToMany(mappedBy = "dataConfigurations", cascade = CascadeType.ALL)
        private List<LabelType> labelTypes;
        private String name;
        @OneToMany(mappedBy = "dataConfiguration", cascade = CascadeType.ALL
        private List<Template> templates;
这是启动保存方法的控制器方法:

public String saveDataConfiguration()
{
    dataConfiguration = new DataConfiguration(getNextId(), dataConfigurationName, contents);
    dataConfigurationFacade.create(dataConfiguration);
    return null;
}
create方法是AbstractFacade的一部分

public void create(T entity)
{
    getEntityManager().persist(entity);
        getEntityManager().flush();
}
当我执行该方法时,除了内容表中的dataconfiguration的Id之外,所有内容都被保存。 (数据配置的外键未保存在内容中)
任何提示和/或提示都会非常有用

您可能忘记初始化每个内容的字段
dataConfiguration
。这是映射到联接列的一个,因此Hibernate将对其进行检查以确定两个实体之间是否存在关联

我通过使用entitymanager的NativeQuery成功地避免了这个问题,但我仍然想知道上面的代码出了什么问题。
public void create(T entity)
{
    getEntityManager().persist(entity);
        getEntityManager().flush();
}