Java 使用spring表单标记插入/更新具有非基本属性的实体
在我的spring应用程序中,用于在数据库中插入/更新实体的表单具有类似以下结构:Java 使用spring表单标记插入/更新具有非基本属性的实体,java,spring,spring-mvc,spring-form,Java,Spring,Spring Mvc,Spring Form,在我的spring应用程序中,用于在数据库中插入/更新实体的表单具有类似以下结构: <jsp:include page="../../common/cadastrar.jsp"> <jsp:param name="entity" value="Usuario"/> <jsp:param name="arguments" value="login"/> <jsp:param name="arguments" value="senh
<jsp:include page="../../common/cadastrar.jsp">
<jsp:param name="entity" value="Usuario"/>
<jsp:param name="arguments" value="login"/>
<jsp:param name="arguments" value="senha"/>
<jsp:param name="arguments" value="first_name"/>
<jsp:param name="arguments" value="last_name"/>
<jsp:param name="arguments" value="email"/>
</jsp:include>
Pedido.java
@Entity
@Table(name="pedido")
public class Pedido {
@Id
@Column(name = "id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@ManyToMany
@JoinTable(name="produtos_do_pedido", joinColumns={@JoinColumn(name="fk_pedido")}, inverseJoinColumns={@JoinColumn(name="fk_produto")})
@LazyCollection(LazyCollectionOption.FALSE)
private List<Produto> produto;
@ManyToMany
@JoinTable(name="cobranca_do_pedido", joinColumns={@JoinColumn(name="fk_pedido")}, inverseJoinColumns={@JoinColumn(name="fk_cobranca")})
@LazyCollection(LazyCollectionOption.FALSE)
private List<Cobranca> cobranca;
}
@实体
@表(name=“pedido”)
公共级佩迪多{
@身份证
@列(name=“id”)
@GeneratedValue(策略=GenerationType.IDENTITY)
私有整数id;
@许多
@JoinTable(name=“produtos\u do\u pedido”,joinColumns={@JoinColumn(name=“fk\u pedido”)},inverseJoinColumns={@JoinColumn(name=“fk\u produto”)})
@LazyCollection(LazyCollectionOption.FALSE)
私人上市公司;
@许多
@JoinTable(name=“cobranca_do_pedido”,joinColumns={@JoinColumn(name=“fk_pedido”)},inverseJoinColumns={@JoinColumn(name=“fk_cobranca”)})
@LazyCollection(LazyCollectionOption.FALSE)
私人名单cobranca;
}
如果不知道这些实体是什么,我什么也说不出来。处理的方式高度依赖于实体结构。您可能有:直接字符串实体转换(日期)、复选框(枚举或选项)、一个属性的多个字段(复杂实体)等。好的,我将问题更新为包含与客户
相关的实体。
@Entity
@Table(name="cliente")
public class Cliente extends Entidade {
@Id
@Column(name = "id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@OneToOne
@JoinColumn(name="fk_usuario")
private Usuario usuario;
@Column(name="documento")
private String documento;
@Column(name="cpf")
private String cpf;
@Column(name="cnpj")
private String cnpj;
@ManyToMany
@JoinTable(name="endereco_entrega", joinColumns={@JoinColumn(name="fk_cliente")}, inverseJoinColumns={@JoinColumn(name="fk_endereco")})
@LazyCollection(LazyCollectionOption.FALSE)
private List<Endereco> endereco;
@ManyToMany
@JoinTable(name="pedido_cliente", joinColumns={@JoinColumn(name="fk_cliente")}, inverseJoinColumns={@JoinColumn(name="fk_pedido")})
@LazyCollection(LazyCollectionOption.FALSE)
private List<Pedido> pedido;
}
@Entity
@Table(name="usuario")
public class Usuario extends Entidade {
@Id
@Column(name = "id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@Column(name = "login")
private String login;
@Column(name = "senha")
private String senha;
@Column(name="first_name")
private String first_name;
@Column(name="last_name")
private String last_name;
@Column(name="email")
private String email;
@ManyToMany
@JoinTable(name="role_members", joinColumns={@JoinColumn(name="fk_user")}, inverseJoinColumns={@JoinColumn(name="fk_role")})
@LazyCollection(LazyCollectionOption.FALSE)
private List<Role> Autorizacao = new ArrayList<Role>();
}
@Entity
@Table(name="endereco")
public class Endereco {
@Id
@Column(name = "id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@Column(name="logadouro")
private String logradouro;
@Column(name="numero")
private String numero;
@Column(name="complemento")
private String complemento;
@Column(name="bairro")
private String bairro;
@Column(name="cidade")
private String cidade;
@Column(name="estado")
private String estado;
@Column(name="cep")
private String cep;
}
@Entity
@Table(name="pedido")
public class Pedido {
@Id
@Column(name = "id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@ManyToMany
@JoinTable(name="produtos_do_pedido", joinColumns={@JoinColumn(name="fk_pedido")}, inverseJoinColumns={@JoinColumn(name="fk_produto")})
@LazyCollection(LazyCollectionOption.FALSE)
private List<Produto> produto;
@ManyToMany
@JoinTable(name="cobranca_do_pedido", joinColumns={@JoinColumn(name="fk_pedido")}, inverseJoinColumns={@JoinColumn(name="fk_cobranca")})
@LazyCollection(LazyCollectionOption.FALSE)
private List<Cobranca> cobranca;
}