Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将作为对象的Java类属性映射到单个JPA表列?_Java_Object_Jpa - Fatal编程技术网

如何将作为对象的Java类属性映射到单个JPA表列?

如何将作为对象的Java类属性映射到单个JPA表列?,java,object,jpa,Java,Object,Jpa,我有一个Sprint引导web服务,它使用JPA映射到底层SQL数据库 其中一个域类有一个属性,它是一个复杂的Java对象,我不想在普通映射/联接表中持久化它。相反,我希望将这个Java对象映射到主表中的一个列,并理想地将数据以JSON格式存储在一个字符串列中 有什么建议吗?您可以使用jpa的: 非常感谢!写入正在工作,但当我尝试读取父对象时,“MyObject”属性返回为null。“获取”与此相关吗?发现问题。我使用的是Java8 time‘Instant’,读流似乎不支持它。有什么建议吗?修

我有一个Sprint引导web服务,它使用JPA映射到底层SQL数据库

其中一个域类有一个属性,它是一个复杂的Java对象,我不想在普通映射/联接表中持久化它。相反,我希望将这个Java对象映射到主表中的一个列,并理想地将数据以JSON格式存储在一个字符串列中

有什么建议吗?

您可以使用jpa的:


非常感谢!写入正在工作,但当我尝试读取父对象时,“MyObject”属性返回为null。“获取”与此相关吗?发现问题。我使用的是Java8 time‘Instant’,读流似乎不支持它。有什么建议吗?修复了“即时问题…”。。。映射器=新对象映射器;mapper.registerModulenew JavaTimeModule;mapper.disableSerializationFeature.WRITE_DATES_作为时间戳;很高兴它有帮助:
@Converter
public class MyObjectConverter implements AttributeConverter<MyObject, String> {
 @Override
 public String convertToDatabaseColumn(MyObject myObject) {
    //convert myobject to json: for instance use ObjectMapper from Jackson
    if( myObject == null )
        return null;

    ObjectMapper mapper = new ObjectMapper();
    return mapper.writeValueAsString(myObject );
 }

 @Override
 public MyObject convertToEntityAttribute(String myObjectString) {
    // convert myObjectString back to object
    if( myObjectString== null )
        return null;

    ObjectMapper mapper = new ObjectMapper();
    return mapper.readValue(myObjectString, MyObject.class);
 }  
}
@Column
@Converter(converter = MyObjectConverter.class)
MyObject myObject;