在Spring数据jdbc中使用jsonb postgres格式
我有以下测试表:在Spring数据jdbc中使用jsonb postgres格式,spring,postgresql,spring-data,jsonb,spring-data-jdbc,Spring,Postgresql,Spring Data,Jsonb,Spring Data Jdbc,我有以下测试表: CREATE TABLE user ( id UUID NOT NULL PRIMARY KEY DEFAULT uuid_generate_v4(), name VARCHAR(100), address jsonb ) 我要做的是将这个表加载到一个实体中 public class Buddy{ @Id private UUID id; private String name; private Address address; //gett
CREATE TABLE user (
id UUID NOT NULL PRIMARY KEY DEFAULT uuid_generate_v4(),
name VARCHAR(100),
address jsonb
)
我要做的是将这个表加载到一个实体中
public class Buddy{
@Id
private UUID id;
private String name;
private Address address;
//getter and setter
}
地址是什么
public class Address {
@JsonProperty("name")
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我不清楚如何将json字符串转换为java Pojo?
是否可以这样做,或者超出范围?使用Spring数据JDBC
样本数据
-无法在PostgreSQL中创建名为“user”的数据库表
drop table users;
CREATE TABLE users (
id VARCHAR(10) NOT NULL PRIMARY KEY,
name VARCHAR(100),
address jsonb
);
insert into users values('1', 'Jhon Doe', '{ "name": "Main St Anytown, USA"}');
存储库
@Repository
public interface BuddyRepository extends CrudRepository<Buddy, String>{
}
-
使用Spring数据JDBC
样本数据
-无法在PostgreSQL中创建名为“user”的数据库表
drop table users;
CREATE TABLE users (
id VARCHAR(10) NOT NULL PRIMARY KEY,
name VARCHAR(100),
address jsonb
);
insert into users values('1', 'Jhon Doe', '{ "name": "Main St Anytown, USA"}');
存储库
@Repository
public interface BuddyRepository extends CrudRepository<Buddy, String>{
}
-
我知道,这是一个非常愚蠢的问题,但为什么我需要hibernate来处理spring数据jdbc?你不需要它,它是另一种选择。我只是使用Spring数据JDBC2添加了必要的代码,这真的很酷!非常感谢所有的碎片,伙计!为了进行测试,我删除了公共数据源pgDataSource,以便在应用程序中使用.yaml conf,并删除了集成测试confs,以获得测试荣誉!我知道,这是一个非常愚蠢的问题,但为什么我需要hibernate来处理spring数据jdbc?你不需要它,它是另一种选择。我只是使用Spring数据JDBC2添加了必要的代码,这真的很酷!非常感谢所有的碎片,伙计!为了进行测试,我删除了公共数据源pgDataSource,以便在应用程序中使用.yaml conf,并删除了集成测试confs,以获得测试荣誉!
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-52</artifactId>
<version>${hibernate-types.version}</version>
</dependency>
compile group: 'com.vladmihalcea', name: 'hibernate-types-52', version: '1.0.0'
import com.vladmihalcea.hibernate.type.json.JsonBinaryType
import org.hibernate.annotations.TypeDef
@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
public class Buddy{
@Id
private UUID id;
private String name;
@Type(type = "jsonb")
@Column(columnDefinition = "jsonb")
private Address address;
//getter and setter
}
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Address {
@JsonProperty("name")
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}