0

I'm wondering if it's possible to define a map with unknown (Object) element type.
I have an object with the following map defined:

Map<String, Object> attributes = new HashMap<String, Object>();

Sometimes an attribute can be a String and sometimes it can be a java.util.Date
Is there any elegant way to handle such a data object in Hibernate?
BTW I'm using HBM XML

Thanks!

4

1 に答える 1

1

いいえ。

合理的であること。それをどのようにデータベースに入れますか?あなたが投げたものを格納する列はありません-それは1NFではありません

はい。

それを文字列にシリアライズして BLOB に格納すれば、何でもできます。しかし、これは洗練された解決策ではなく、以前よりも多くの問題を引き起こす可能性があります。あなた自身 (または適切なライブラリ) が String 表現への変換を実装する必要があるように、そのような問題を回避することがまさに Hibernate を使用する理由ですよね?

結論

フィールドが String を格納する必要がある場合と Date またはpublic class Whatchamacallitインスタンスを別のケースで格納する必要がある場合は、クラス階層を再考する必要があります。スーパークラスのサブクラスが必要なだけかもしれません。

追加

この「属性」の種類の DB 構造は慎重に使用する必要があり、特に注意が必要です。これは、構造がますます大きくなるにつれて、スループットが非常に低下する可能性があります...

于 2012-10-31T14:30:25.013 に答える