Cách làm thế nào nó được thực hiện trong dự án hiện tại của tôi là chúng ta chuyển đậu/bộ sưu tập để xml sử dụng xStream:
public static String toXML(Object instance) {
XStream xs = new XStream();
StringWriter writer = new StringWriter();
xs.marshal(instance, new CompactWriter(writer));
return writer.toString();
}
và sau đó sử dụng Lob gõ vào ngủ đông cho sự bền bỉ:
@Lob
@Column(nullable = false)
private String data;
tôi tìm thấy cách tiếp cận này rất chung chung và bạn có thể triển khai hiệu quả khóa/giá trị linh hoạt với nó. Bạn không thích định dạng XML thì khung Xstream có trình điều khiển sẵn có để chuyển đổi các đối tượng thành JSON. Hãy thử nó, nó thực sự tuyệt vời.
Chúc mừng
EDIT: Trả lời nhận xét. Có, nếu bạn muốn vượt qua những hạn chế của cách tiếp cận cổ điển, bạn có thể hy sinh điều gì đó như lập chỉ mục và/hoặc tìm kiếm. Bạn stil có thể thực hiện các mối quan hệ lập chỉ mục/tìm kiếm/ngoại lai/con thông qua các bộ sưu tập/các bean thực thể chung - chỉ cần duy trì bảng khóa/giá trị riêng biệt với tên thuộc tính/giá trị thuộc tính mà bạn nghĩ tìm kiếm là cần thiết.
Tôi đã thấy số lượng thiết kế cơ sở dữ liệu cho các sản phẩm linh hoạt và năng động (tức là tạo thuộc tính mới cho đối tượng miền không có thời gian chết) và rất nhiều trong số đó sử dụng bảng khóa/giá trị để lưu trữ thuộc tính miền và tham chiếu từ đối tượng chủ sở hữu cho đứa trẻ. Những sản phẩm này tốn hàng triệu đô la (ngân hàng/viễn thông) vì vậy tôi đoán thiết kế này đã được chứng minh là có hiệu quả.
Rất tiếc, đó không phải là câu trả lời cho câu hỏi ban đầu của bạn vì bạn đã hỏi về giải pháp không có bảng trung gian.
Nguồn
2012-02-01 09:15:17
IMO vẫn là cách để đi – Firo
Tôi không thấy lý do tại sao điều này xứng đáng với việc giảm giá hoặc đóng. Có một cách "tốt nhất" được trình bày nhưng đã được bốn tuổi.Tôi không nghĩ rằng nó không hợp lý để hỏi nếu có một cách tốt hơn bây giờ. Có lẽ tôi nên có đủ điều kiện tốt hơn như ít tiết hoặc đơn giản hơn, nhưng nó vẫn không thực sự tranh luận hay một ý kiến. Có một câu trả lời hay không. – AHungerArtist
+1 để bù đắp số tiền giảm. IMO là một câu hỏi pháp lý. – Firo