通过注释弹簧从数据库获取数据的方式之间有什么区别?

问题描述

早上好,我正在学习春天。我看到了与实体合作的几种选择。我不明白这两种方法之间是否有任何区别。

第一

@Entity
@NoArgsConstructor
@EqualsAndHashCode    
public class ProductTest {
private Long idProduct;
private String nameProduct;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_product",table = "product",nullable = false)
public Long getIdProduct() {
    return idProduct;
}

public void setIdProduct(Long idProduct) {
    this.idProduct = idProduct;
}

@Basic
@Column(name = "name_product",nullable = false,length = 100)
public String getNameProduct() {
    return nameProduct;
}

public void setNameProduct(String nameProduct) {
    this.nameProduct = nameProduct;
    }
}

第二

@Entity
@NoArgsConstructor
@EqualsAndHashCode
public class ProductTest {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id_product",nullable = false)
    private Long idProduct;
    @Basic
    @Column(name = "name_product",length = 100)
    private String nameProduct;

    public Long getIdProduct() {
        return idProduct;
    }

    public void setIdProduct(Long idProduct) {
        this.idProduct = idProduct;
    }

    public String getNameProduct() {
        return nameProduct;
    }

    public void setNameProduct(String nameProduct) {
        this.nameProduct = nameProduct;
    }
}

使用数据库会更好吗?

还对我是否可以通过Entity向表中添加列感兴趣? 我很高兴听到您的建议。

解决方法

主要区别在于逻辑的分离。 如果getter和setter中不需要逻辑,则将注释放在字段上方,并且可以从Lombok注释中删除getter和setter。 欲了解更多信息,请点击以下链接 Hibernate Annotations - Which is better,field or property access? Hibernate Annotation Placement Question