JPA对象型属性操作

本文介绍了JPA在对象型属性操作中的多种技巧,包括使用关联、保存枚举值、将子表字段合并到主表、重写字段名、类型转换以及使用抽象类属性。通过这些方法,可以提升实体设计的清晰度和可扩展性,同时提醒在实际应用中要避免过度设计。
摘要由CSDN通过智能技术生成

个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 

领域驱动设计核心是领域对象识别,一切操作皆是对象,这也是面向对象编程所倡导的。在设计实体属性时,除了数据库能识别的标准数据类型外,也越来越多考虑复合型的对象属性。让我们的设计视角为数据存储的层面转向客观事物存在的实际表象。ORM框架也就是为此提供技术支撑,至少JPA朝此方向不断完善的。

先上代码:(此代码主要为展示功能而设计,不一定具体设计的合理性,由于篇幅代码略有删减)

@Entity
public class SaleOrder implements Serializable {

    @Column(unique = true, updatable = false)
    private String orderCode;

    @Embedded
    @AttributeOverrides({
            @AttributeOverride(name = "stationCode", column = @Column(name = "in_station_code")),
            @AttributeOverride(name = "storage.storageCode", column = @Column(name = "in_storage_code"))
    })
    private Station inStation;

    @Embedded
    @AttributeOverrides({
            @AttributeOverride(name = "stationCode", column = @Column(name = "out_station_code")),
            @AttributeOverride(name = "storage.storageCode", column = @Column(name = "out_storage_code"))
    })
    private Station outStation;
    
    private LocalDateTime saleTime;

    private Address address;

    @ManyToOne(cascade = CascadeType.REFRESH)
    @JoinColumn(name = "memberCode", referencedColumnName = "memberCode")
    private Member member;

    @Enumerated(EnumType.STRING)
    private OrderState orderState;

    @OneToMany(cascade = {CascadeType.MERGE, CascadeType.PERSIST})
    @JoinColumn(name = "saleOrderCode", referencedColumnName 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值