1

对于 Spring MVC 应用程序,配置了带有休眠功能的 ORM jpa。每个请求都将以通常的形式提交,响应将是 json,因此配置 Jackson Json 并使用 @ResponseBody 。除了实体的多对一映射外,一切都运行良好。

public class Supplier implements BaseEntity{
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Integer id;
    private String name;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "bank_id", nullable = false)
    private Bank bank;
    /*
     all getters and setters
      */
}

银行实体

@Entity
@Table(name="bank_tbl", uniqueConstraints=@UniqueConstraint(columnNames="name_bank"))
public class Bank implements BaseEntity{

    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    @Column(name="bank_id")
    private Integer id;

    @Column( nullable=false)
    private String name;

    @Column(name="desc_bank", columnDefinition="TEXT")
    private String desc;
    /*
     all getters and setters
      */
}

样品请求

id:1 名称:“史蒂夫”银行:4

第一个困惑是如何将请求中存在的银行 ID 值绑定到实体。其次,在绑定之后,除了entityManager.merge(supplier);之外,是否需要做任何特殊的方式来保存Supplier实体;. 如何仅使用 bank_id 检索供应商 json。实体本身是否需要更改才能满足此要求?

4

1 回答 1

0

您可能想查看 Jackson 中的自定义序列化器/反序列化器:http: //blog.palomilabs.com/2012/06/05/writing-a-custom-jackson-serializer-and-deserializer/

于 2013-04-23T11:38:52.023 回答