他们让我用 JPA 做这个映射(红色标记的是一个加号问题):D:
所以我这样做了:
中央管理
@Entity
@Table(name = "gerencia_central")
public class GerenciaCentral implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "id_gerencia_c")
private int gerenciaCenId;
@Column(name = "codigo_gerencia_c_propio")
private String codigoPropio;
@Column(name = "descripcion_gerencia_c")
private String descripcion;
@Column(name = "descripcion_corta_gerencia_c")
private String descripcionCorta;
@Column(name = "estado_gerencia_c")
private String estado;
@OneToMany(mappedBy = "gerenciaCen", cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, orphanRemoval = true)
private List<Gerencia> listaGerencia;
管理
@Entity
@Table(name = "gerencia")
public class Gerencia implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private GerenciaPK pk;
@ManyToOne
@JoinColumn(name = "id_gerencia_c", referencedColumnName = "id_gerencia_c", nullable = false, insertable = false, updatable = false)
private GerenciaCentral gerenciaCen;
@Column(name = "codigo_gerencia_propio", length = 4)
private String codigoPropio;
@Column(name = "descripcion_gerencia", length = 80)
private String descripcion;
@Column(name = "descripcion_corta_gerencia", length = 40)
private String descripcionCorta;
@Column(name = "estado_gerencia", length = 1)
private String estado;
@OneToMany(mappedBy = "gerencia", cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, orphanRemoval = true)
private List<AreaFuncional> listaAreafunc;
和管理键
@Embeddable
public class GerenciaPK implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "id_gerencia_c")
private int gerenciaCenId;
@Column(name = "id_gerencia")
private int gerenciaId;
不用说,每个人都有自己的 Get 和 Set 以及 Equals 和 Hash Code。虽然对于这个案子,我认为这些都不重要。继续...
执行项目时,它会创建表而不是关系。
很好。生成模式时,我可能做错了什么。这就是为什么我也通过其他方式检查的原因。
甚至生成数据库的脚本
CREATE TABLE `gerencia` (
`id_gerencia_c` int(11) NOT NULL,
`id_gerencia` int(11) NOT NULL,
`codigo_gerencia_propio` varchar(4) DEFAULT NULL,
`descripcion_gerencia` varchar(80) DEFAULT NULL,
`descripcion_corta_gerencia` varchar(40) DEFAULT NULL,
`estado_gerencia` varchar(1) DEFAULT NULL,
PRIMARY KEY (`id_gerencia_c`,`id_gerencia`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
我想知道出了什么问题。我不一定要问我做错了什么,而是问其他什么是错的。直到他们让我去做。
QUESTION PLUS 在第一张图片中,您看到我用红色突出显示了一个框。他们在那里告诉我是一个整数,但 4 位数。由于第一个 ID 必须是“0001”,我将整数更改为字符串。自动增量已经是我自己的了。但我想知道是否有办法将所有这些都指示给 Hibernate,以便它保存一个带有前导零的数字。谢谢。
这可能会帮助你,添加
在中央管理方面:
在管理