我的一个实体,包含一个仅包含两个属性的简单对象。 建议使用hibernate / jpa批注映射该实体的方式。
例如,如何在实体报表中使用注释映射Money。
public class Report{
private long id;
private Money amount;
}
public class Money{
private BigDecimal value;
private String currency;
}
答案 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。
希望有帮助。