在java中映射postgresql text []

时间:2017-06-23 17:00:15

标签: java postgresql mapping

度过愉快的一天!

我的问题是:

我在postgresql中有一个表格,其中包含text []类型的字段。

CREATE TABLE pregunta_contenido
(
    id_pregunta integer NOT NULL DEFAULT nextval('seq_pregunta_contenido'::regclass),
    contenido integer NOT NULL,
    num_pregunta integer,
    descripcion_pregunta text,
    respuesta text[],
    correcta text,
    CONSTRAINT pk_pregunta PRIMARY KEY (id_pregunta),
    CONSTRAINT fk_pregunta_contenido FOREIGN KEY (contenido)
    REFERENCES contenido (id_contenido) MATCH SIMPLE
    ON UPDATE CASCADE ON DELETE NO ACTION
);

我在Java应用程序中有这个表的映射:

@Entity
@Table(name="pregunta_contenido") 
public class PreguntaContenido {

@Id 
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_GEN")
@javax.persistence.SequenceGenerator(name="SEQ_GEN",sequenceName="seq_pregunta_contenido",allocationSize=1)
@Column(name="id_pregunta")
public Integer idPregunta;

@JsonIgnore
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="contenido", nullable=false)
public Contenido contenido;

@Column(name="num_pregunta")
public Integer numPregunta;

@Column(name="descripcion_pregunta")
public String descripcionPregunta;

@Column(name="respuesta")
public String respuesta;

@Column(name="correcta")
public String correcta;

}

当我获取信息时,映射进展顺利,但是当我设置它时由于text []类型和类型字符串不兼容而出错。

如何在列respuesta中映射与类型text []匹配的类型?

非常感谢。

1 个答案:

答案 0 :(得分:0)

@Entity注释后尝试下面的代码: -

@TypeDefs({@TypeDef(name = "string-array",typeClass = StringArrayType.class)})

并将以下代码用于实体: -

@Type( type = "respuesta" )
@Column(name = "respuesta", columnDefinition = "text[]")
private String[] respuesta;