Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Hibernate不插入外键值,但提供相关实体_Hibernate_Hibernate Mapping - Fatal编程技术网

Hibernate不插入外键值,但提供相关实体

Hibernate不插入外键值,但提供相关实体,hibernate,hibernate-mapping,Hibernate,Hibernate Mapping,我有3个相互关联的类:parametrosential、nomficherosential和tipocamposetity。当试图持久化一个ParameterSensity对象,并为其提供另外两个所需的对象时,就会出现问题 参数意识: @Entity @Table(name = "CON_DPARAMETROS") public class ParametrosEntity { @EmbeddedId @AttributeOverrides({ @AttributeOverri

我有3个相互关联的类:parametrosential、nomficherosential和tipocamposetity。当试图持久化一个ParameterSensity对象,并为其提供另外两个所需的对象时,就会出现问题

参数意识:

@Entity
@Table(name = "CON_DPARAMETROS")
public class ParametrosEntity {

@EmbeddedId
@AttributeOverrides({
        @AttributeOverride(name = "componenteId", column = @Column(name = "COM_IDENTIFICADOR",
                                                                   nullable = false)),
        @AttributeOverride(name = "clave", column = @Column(name = "PAR_CLAVE",
                                                            nullable = false)),
        @AttributeOverride(name = "fichero", column = @Column(name = "NOM_FICHERO",
                                                              nullable = false))})
private ParametrosPK id;
@Column(name = "PAR_VALOR")
private String valor;
@Column(name = "PAR_LABEL")
private String label;
@Column(name = "PAR_DESCRIPCION")
private String descripcion;
@Column(name = "PAR_PRESENTACION")
private String presentacion;
@Column(name = "PAR_PROGRAMA")
private String programa;

@OneToOne
@JoinColumns({
        @JoinColumn(name = "COM_IDENTIFICADOR", referencedColumnName = "COM_IDENTIFICADOR",
                    nullable = false, insertable = false, updatable = false),
        @JoinColumn(name = "NOM_FICHERO", referencedColumnName = "NOM_FICHERO",
                    nullable = false, insertable = false, updatable = false)})
private NombreFicherosEntity fichero;
@OneToOne
@JoinColumn(name = "TIP_TIPO", nullable = false, insertable = false, updatable = false)
private TipoCamposEntity tipo;
@Entity
@Table(name = "CON_DNOMFICHEROS")
public class NombreFicherosEntity {

@EmbeddedId
@AttributeOverrides({
        @AttributeOverride(name = "idComponente", column = @Column(name = "COM_IDENTIFICADOR",
                                                                   nullable = false)),
        @AttributeOverride(name = "fichero", column = @Column(name = "NOM_FICHERO",
                                                              nullable = false))})
private NombreFicherosPK id;

@OneToOne
@JoinColumn(name = "COM_IDENTIFICADOR", nullable = false, insertable = false, updatable = false)
private ComponentesEntity componente;
TipoCamposEntity:

@Entity
@Table(name = "CON_PTIPOCAMPOS")
public class TipoCamposEntity {

@Id
@Column(name = "TIP_TIPO")
private String tipo;
@Column(name = "TIP_DESCRIPCION")
private String descripcion;
法律意识:

@Entity
@Table(name = "CON_DPARAMETROS")
public class ParametrosEntity {

@EmbeddedId
@AttributeOverrides({
        @AttributeOverride(name = "componenteId", column = @Column(name = "COM_IDENTIFICADOR",
                                                                   nullable = false)),
        @AttributeOverride(name = "clave", column = @Column(name = "PAR_CLAVE",
                                                            nullable = false)),
        @AttributeOverride(name = "fichero", column = @Column(name = "NOM_FICHERO",
                                                              nullable = false))})
private ParametrosPK id;
@Column(name = "PAR_VALOR")
private String valor;
@Column(name = "PAR_LABEL")
private String label;
@Column(name = "PAR_DESCRIPCION")
private String descripcion;
@Column(name = "PAR_PRESENTACION")
private String presentacion;
@Column(name = "PAR_PROGRAMA")
private String programa;

@OneToOne
@JoinColumns({
        @JoinColumn(name = "COM_IDENTIFICADOR", referencedColumnName = "COM_IDENTIFICADOR",
                    nullable = false, insertable = false, updatable = false),
        @JoinColumn(name = "NOM_FICHERO", referencedColumnName = "NOM_FICHERO",
                    nullable = false, insertable = false, updatable = false)})
private NombreFicherosEntity fichero;
@OneToOne
@JoinColumn(name = "TIP_TIPO", nullable = false, insertable = false, updatable = false)
private TipoCamposEntity tipo;
@Entity
@Table(name = "CON_DNOMFICHEROS")
public class NombreFicherosEntity {

@EmbeddedId
@AttributeOverrides({
        @AttributeOverride(name = "idComponente", column = @Column(name = "COM_IDENTIFICADOR",
                                                                   nullable = false)),
        @AttributeOverride(name = "fichero", column = @Column(name = "NOM_FICHERO",
                                                              nullable = false))})
private NombreFicherosPK id;

@OneToOne
@JoinColumn(name = "COM_IDENTIFICADOR", nullable = false, insertable = false, updatable = false)
private ComponentesEntity componente;
我在尝试持久化ParameterSensity对象时遇到问题。我将数据分配到对象参数中,包括所需的实体,但插入时会出错

以下是我用于persist的代码和获得的错误:

持久化代码:

ParameterSentity param=新的ParameterSentity()

以及错误的输出:

Hibernate: insert into CON_DPARAMETROS (PAR_DESCRIPCION, PAR_LABEL, PAR_PRESENTACION, PAR_PROGRAMA, PAR_VALOR, PAR_CLAVE, COM_IDENTIFICADOR, NOM_FICHERO) values (?, ?, ?, ?, ?, ?, ?, ?)
ORA-01400: cannot insert NULL into ("SGAINSDIST"."CON_DPARAMETROS"."TIP_TIPO")

我可以看到hibernate在insert查询中没有包含“TIP_TIPO”列,但我不理解为什么没有。我做错了什么?谢谢你的帮助。

你能展示一下如何创建
TipoCamposEntity
的对象吗?你试过这样做吗?:“@OneToOne@JoinColumn(name=“TIP\u TIPO”,nullable=false,insertable=true,updateable=true)私有TipoCamposEntity TIPO;´