如何在Hibernate中映射简单对象

时间:2019-05-16 02:07:09

标签: hibernate jpa

我的一个实体,包含一个仅包含两个属性的简单对象。 建议使用hibernate / jpa批注映射该实体的方式。

例如,如何在实体报表中使用注释映射Money。

public class Report{

  private long id;

  private Money amount;

}

public class Money{

  private BigDecimal value;

  private String currency;

}

1 个答案:

答案 0 :(得分:1)

您可以通过以下方法实现:

首先了解一般概念

$patient->pivot->Day... or $patient->pivot->time

具体方面第二

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class AbstractBaseEntity { 

    public static final long INVALID_OBJECT_ID = -42;

    @Version
    private int version;    

    @Id
    @SequenceGenerator(name = "sequence-object", sequenceName = "ID_MASTER_SEQ")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequence-object")
    @Column(name = "id")
    protected Long objectID = INVALID_OBJECT_ID;

    public int getVersion() {
        return version;
    }

    @Override
    public long getObjectID() {
        return objectID;
    }
}

这样,您不仅可以管理一个实体/数据库表的主键,还可以管理域中其他任何类型的主键。

如果您需要其他参数来保证@Entity public class Report extends AbstractBaseEntity { @OneToOne(cascade=CascadeType.All) private Money amount; } @Entity public class Money extends AbstractBaseEntity { @Column(name="value", nullable = false, scale = 3, precision = 13) private BigDecimal value; @Column(name="currency", nullable = false) private String currency; } 值的精度,那么您可能会对this answer感兴趣。有关BigDecimal批注的更多详细信息,请查看this post

希望有帮助。