使用JPA进行类型转换取决于同一实体中的另一个属性

时间:2014-03-20 22:17:24

标签: java jpa jpa-2.0

我有一个以keyvaluevalueType为列的表格。值可以是intlongbooleancollection之一,均表示为db中的字符串。该集合将保存为分隔集合。我希望在从数据库检索期间将这些转换为适当的类型。我发现以下blog post在JPA 2.1中讨论了@Covert。

但我的麻烦是值的类型存储在valueType属性中。如何将valueType引入转换器,以便我可以使用它来确定需要转换为哪种类型?

1 个答案:

答案 0 :(得分:0)

如果要将属性限制为特定值,可以使用enum属性并使用CustomEnumConverter类。这是一个例子:

http://java.dzone.com/articles/mapping-enums-done-right

现在,我知道MySQL支持它。在SQL Server中,您可以通过以下方式限制值:

mycol VARCHAR(10) NOT NULL CHECK (mycol IN('val1', 'val2', 'val3'))