Tôi có một đối tượng bất biến là thành viên của đối tượng Hibernate được lưu giữ lâu bền bằng cách sử dụng ánh xạ thành phần. Ví dụ, PinDrop
tương ứng với một bảng, trong đó có một lĩnh vực loại bất biến Point
:Lập bản đồ thành phần Hibernate của một đối tượng bất biến
public class PinDrop {
private String name;
private Point location;
// Getters and setters for name and location
}
// Immutable Point
public class Point {
private final double x;
private final double y;
// Getters for x and y, no setters
}
Trong PinDrop.hbm.xml
tôi:
<property name="name" column="name" type="string"/>
<component name="location" class="Point>
<property name="x" column="location_x" type="double"/>
<property name="y" column="location_y" type="double"/>
</component>
này không làm việc vì ở Hibernate runtime phàn nàn rằng Point
không có người định cư cho x
và y
. Có cách nào để sử dụng một đối tượng bất biến như là một thành phần của một đối tượng bền vững Hibernate?
Theo dõi: Tôi không sử dụng chú thích, mà là hbm.xml
. Không phải mutable
cũng không phải immutable
là các thuộc tính hợp lệ trên component
và property
trong hbm.xml
.
Bạn có cần đặt trường 'final'? –