Java 如何使用JPA保持多对多关系
我对如何在数据库中保存数据感到非常困惑。我将从表中获取数据,然后保存 下面是我的关系图 如何将布局列表保存到Ordemservico中 这是我的班级Java 如何使用JPA保持多对多关系,java,jpa,Java,Jpa,我对如何在数据库中保存数据感到非常困惑。我将从表中获取数据,然后保存 下面是我的关系图 如何将布局列表保存到Ordemservico中 这是我的班级 public class Ordemservico implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @
public class Ordemservico implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "idordemservico")
private Integer idordemservico;
@Column(name = "identificadoros")
private Integer identificadoros;
@Column(name = "mes")
private Integer mes;
@Column(name = "ano")
private Integer ano;
@Column(name = "assunto")
private String assunto;
@Basic(optional = false)
@Column(name = "publicitario")
private String publicitario;
@Basic(optional = false)
@Column(name = "layoutos")
private String layoutos;
@Basic(optional = false)
@Column(name = "dataincio")
@Temporal(TemporalType.DATE)
private Date dataincio;
@Column(name = "datafim")
@Temporal(TemporalType.DATE)
private Date datafim;
@Column(name = "dataevento")
@Temporal(TemporalType.DATE)
private Date dataevento;
@Column(name = "producao")
private String producao;
@Lob
@Column(name = "discricao")
private String discricao;
@Column(name = "responsavelos")
private String responsavelos;
@Column(name = "materiajornal")
private String materiajornal;
@ManyToMany(mappedBy = "ordemservicoList")
private List<Ordemproducao> ordemproducaoList;
@ManyToMany(mappedBy = "ordemservicoList")
private List<Layoutsos> layoutsosList;
@JoinTable(name = "ordemservico_has_usuario", joinColumns = {
@JoinColumn(name = "ordemservico_idordemservico", referencedColumnName = ` ` "idordemservico")}, inverseJoinColumns = {
@JoinColumn(name = "usuario_idusuario", referencedColumnName = ` ` ` ` ` ` ` ` "idusuario")})
@ManyToMany
private List<Usuario> usuarioList;
@JoinColumn(name = "secretaria_idsecretaria", referencedColumnName = ` ` ` ` ` ` "idsecretaria")
@ManyToOne(optional = false)
private Secretaria secretariaIdsecretaria;
@OneToMany(cascade = CascadeType.ALL, mappedBy = ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `"ordemservicoIdordemservico")
private List<Materiajornal> materiajornalList;
public Ordemservico() {
}
public Ordemservico(Integer idordemservico) {
this.idordemservico = idordemservico;
}
public Ordemservico(Integer idordemservico, String publicitario, String ` ` layoutos, Date dataincio) {
this.idordemservico = idordemservico;
this.publicitario = publicitario;
this.layoutos = layoutos;
this.dataincio = dataincio;
}
public Integer getIdordemservico() {
return idordemservico;
}
public void setIdordemservico(Integer idordemservico) {
this.idordemservico = idordemservico;
}
public Integer getIdentificadoros() {
return identificadoros;
}
public void setIdentificadoros(Integer identificadoros) {
this.identificadoros = identificadoros;
}
public Integer getMes() {
return mes;
}
public void setMes(Integer mes) {
this.mes = mes;
}
public Integer getAno() {
return ano;
}
public void setAno(Integer ano) {
this.ano = ano;
}
public String getAssunto() {
return assunto;
}
public void setAssunto(String assunto) {
this.assunto = assunto;
}
public String getPublicitario() {
return publicitario;
}
public void setPublicitario(String publicitario) {
this.publicitario = publicitario;
}
public String getLayoutos() {
return layoutos;
}
public void setLayoutos(String layoutos) {
this.layoutos = layoutos;
}
public Date getDataincio() {
return dataincio;
}
public void setDataincio(Date dataincio) {
this.dataincio = dataincio;
}
public Date getDatafim() {
return datafim;
}
public void setDatafim(Date datafim) {
this.datafim = datafim;
}
public Date getDataevento() {
return dataevento;
}
public void setDataevento(Date dataevento) {
this.dataevento = dataevento;
}
public String getProducao() {
return producao;
}
public void setProducao(String producao) {
this.producao = producao;
}
public String getDiscricao() {
return discricao;
}
public void setDiscricao(String discricao) {
this.discricao = discricao;
}
public String getResponsavelos() {
return responsavelos;
}
public void setResponsavelos(String responsavelos) {
this.responsavelos = responsavelos;
}
public String getMateriajornal() {
return materiajornal;
}
public void setMateriajornal(String materiajornal) {
this.materiajornal = materiajornal;
}
@XmlTransient
public List<Ordemproducao> getOrdemproducaoList() {
return ordemproducaoList;
}
public void setOrdemproducaoList(List<Ordemproducao> ordemproducaoList) {
this.ordemproducaoList = ordemproducaoList;
}
@XmlTransient
public List<Layoutsos> getLayoutsosList() {
return layoutsosList;
}
public void setLayoutsosList(List<Layoutsos> layoutsosList) {
this.layoutsosList = layoutsosList;
}
@XmlTransient
public List<Usuario> getUsuarioList() {
return usuarioList;
}
public void setUsuarioList(List<Usuario> usuarioList) {
this.usuarioList = usuarioList;
}
public Secretaria getSecretariaIdsecretaria() {
return secretariaIdsecretaria;
}
public void setSecretariaIdsecretaria(Secretaria secretariaIdsecretaria) {
this.secretariaIdsecretaria = secretariaIdsecretaria;
}
@XmlTransient
public List<Materiajornal> getMateriajornalList() {
return materiajornalList;
}
public void setMateriajornalList(List<Materiajornal> materiajornalList) {
this.materiajornalList = materiajornalList;
}
@Override
public int hashCode() {
int hash = 0;
hash += (idordemservico != null ? idordemservico.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
if (!(object instanceof Ordemservico)) {
return false;
}
Ordemservico other = (Ordemservico) object;
if ((this.idordemservico == null && other.idordemservico != null) || ` ` ` ` (this.idordemservico != null && ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `enter code here`!this.idordemservico.equals(other.idordemservico))) {
return false;
}
return true;
}
@Override
public String toString() {
return assunto ;
}
}
公共类Ordemservico实现可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@基本(可选=假)
@列(name=“idordemservico”)
私有整数IDORDMSERVICO;
@列(name=“identificadoros”)
私有整数识别器;
@列(name=“mes”)
私有整数mes;
@列(name=“ano”)
私有整数;
@列(name=“assunto”)
私人字符串;
@基本(可选=假)
@列(name=“publicitario”)
私人字符串公开;
@基本(可选=假)
@列(name=“layoutos”)
私有字符串布局;
@基本(可选=假)
@列(name=“dataincio”)
@时态(TemporalType.DATE)
私人数据中心;
@列(name=“datafim”)
@时态(TemporalType.DATE)
私人日期数据职能指令手册;
@列(name=“dataevento”)
@时态(TemporalType.DATE)
私人日期数据事件;
@列(name=“producao”)
私有字符串producao;
@高球
@列(name=“discricao”)
私有字符串discricao;
@列(name=“responsavelos”)
私人字符串应答器;
@列(name=“materialjornal”)
私人字符串材料;
@许多(mappedBy=“ordemservicoList”)
私人名单或企业家;
@许多(mappedBy=“ordemservicoList”)
私有列表布局列表;
@JoinTable(name=“ordemservico\u has\u usuario”,JointColumns={
@JoinColumn(name=“ordemservico\u idordemservico”,referencedColumnName=`“idordemservico”)},inverseJoinColumns={
@JoinColumn(name=“usuario\u idusuario”,referencedColumnName=```“idusuario”)})
@许多
私人名单;
@JoinColumn(name=“secreta_idsecretaria”,referencedColumnName=`idsecretaria”)
@多通(可选=假)
私人秘书处秘书处秘书长;
@OneToMany(cascade=CascadeType.ALL,mappedBy=``````````或rdemservicidordemservico)
私人名单材料专家;
公共服务{
}
公共Ordemservico(整数idordemservico){
this.idordemservico=idordemservico;
}
public Ordemservico(整数idordemservico、字符串publicitario、字符串``layoutos、日期dataincio){
this.idordemservico=idordemservico;
this.publicitario=publicitario;
this.layoutos=layoutos;
this.dataincio=dataincio;
}
公共整数getIDOrderMservico(){
返回idordemservico;
}
public void setIDORDMSERVICO(整数IDORDMSERVICO){
this.idordemservico=idordemservico;
}
公共整数getIdentificatoros(){
返回标识;
}
公共void setIdentificatoros(整数Identificatoros){
this.identificadoros=identificadoros;
}
公共整数getMes(){
返回mes;
}
公共空集合(整数集合){
this.mes=mes;
}
公共整数getAno(){
返回ano;
}
公共void setAno(整数ano){
this.ano=ano;
}
公共字符串getAssunto(){
返回阿西托;
}
公共void setAssunto(字符串assunto){
这个,assunt=assunt;
}
公共字符串getPublicitario(){
归还公共物品;
}
public void setPublicitario(字符串publicitario){
this.publicitario=publicitario;
}
公共字符串getLayoutos(){
返回layoutos;
}
公共void setLayoutos(字符串layoutos){
this.layoutos=layoutos;
}
公开日期getDataincio(){
返回数据输入;
}
公共无效setDataincio(日期dataincio){
this.dataincio=dataincio;
}
公开日期getDatafim(){
返回数据FIM;
}
公开作废setDatafim(日期datafim){
this.datafim=datafim;
}
公共日期getDataevento(){
返回dataevento;
}
公共无效setDataevento(日期dataevento){
this.dataevento=dataevento;
}
公共字符串getProducao(){
返回产品;
}
公共void setProducao(字符串producao){
this.producao=producao;
}
公共字符串getDiscricao(){
返回纸片;
}
公共无效setDiscricao(字符串discricao){
this.discricao=discricao;
}
公共字符串getResponseAvelos(){
返回响应avelos;
}
公共无效SetResponseAvelos(字符串ResponseAvelos){
this.responsavelos=responsavelos;
}
公共字符串getMaterialJornal(){
归还材料;
}
public void setmaterialjornal(字符串materialjornal){
this.materialjornal=materialjornal;
}
@XmlTransient
公共列表GetOrDemproducalist(){
返回或登峰造极者;
}
public void set或emproducalist(列表或emproducalist){
这个。奥德姆普卡主义者=奥德姆普卡主义者;
}
@XmlTransient
公共列表getLayoutsosList(){
返回布局列表;
}
公共作废设置布局列表(列表布局列表){
this.layoutsosList=layoutsosList;
}
@XmlTransient
公共列表getUsuarioList(){
返回用户列表;
}
公共无效设置usuarioList(列表usuarioList){
this.usuarioList=usuarioList;
}
公共秘书处{
返回秘书长;
}
公共秘书处秘书处秘书处{
this.secretaridSecretaria=secretaridSecretaria;
}
@XmlTransient
公共列表GetMaterialJonalList(){
返回材料
public class Layoutsos implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "idlayoutsos")
private Integer idlayoutsos;
@Column(name = "nome")
private String nome;
@Column(name = "medidas")
private String medidas;
@JoinTable(name = "ordemservico_has_layoutsos", joinColumns = {
@JoinColumn(name = "layoutsos_idlayoutsos", referencedColumnName = "idlayoutsos")}, inverseJoinColumns = {
@JoinColumn(name = "ordemservico_idordemservico", referencedColumnName = "idordemservico")})
@ManyToMany
private List<Ordemservico> ordemservicoList;
public Layoutsos() {
}
public Layoutsos(Integer idlayoutsos) {
this.idlayoutsos = idlayoutsos;
}
public Integer getIdlayoutsos() {
return idlayoutsos;
}
public void setIdlayoutsos(Integer idlayoutsos) {
this.idlayoutsos = idlayoutsos;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getMedidas() {
return medidas;
}
public void setMedidas(String medidas) {
this.medidas = medidas;
}
@XmlTransient
public List<Ordemservico> getOrdemservicoList() {
return ordemservicoList;
}
public void setOrdemservicoList(List<Ordemservico> ordemservicoList) {
this.ordemservicoList = ordemservicoList;
}
@Override
public int hashCode() {
int hash = 0;
hash += (idlayoutsos != null ? idlayoutsos.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Layoutsos)) {
return false;
}
Layoutsos other = (Layoutsos) object;
if ((this.idlayoutsos == null && other.idlayoutsos != null) || (this.idlayoutsos != null && !this.idlayoutsos.equals(other.idlayoutsos))) {
return false;
}
return true;
}
@Override
public String toString() {
return "br.app.com.classes.Layoutsos[ idlayoutsos=" + idlayoutsos + " ]";
}
}
Ordemservico o = new Ordemservico();
o.getOrdemproducaoList().add(layoutsos);
em.persist(o);
Layoutsos layoutsos = new Layoutsos();
Ordemservico o = new Ordemservico();
o.getOrdemproducaoList().add(layoutsos);
layoutsos.getOrdermserviceoList().add(o);
em.persist(layoutsos);
em.persist(o);