1 package com.vladmihalcea.hibernate.type.basic;
2
3 import com.vladmihalcea.hibernate.type.ImmutableType;
4 import org.hibernate.engine.spi.SharedSessionContractImplementor;
5
6 import java.sql.PreparedStatement;
7 import java.sql.ResultSet;
8 import java.sql.SQLException;
9 import java.sql.Types;
10 import java.util.Map;
11
12
23 public class PostgreSQLHStoreType extends ImmutableType<Map> {
24
25 public static final PostgreSQLHStoreType INSTANCE = new PostgreSQLHStoreType();
26
27 public PostgreSQLHStoreType() {
28 super(Map.class);
29 }
30
31 @Override
32 public int[] sqlTypes() {
33 return new int[]{Types.OTHER};
34 }
35
36 @Override
37 protected Map get(ResultSet rs, String[] names, SharedSessionContractImplementor session, Object owner) throws SQLException {
38 return (Map) rs.getObject(names[0]);
39 }
40
41 @Override
42 protected void set(PreparedStatement st, Map value, int index, SharedSessionContractImplementor session) throws SQLException {
43 st.setObject(index, value);
44 }
45 }
46