Имеется довольно простой класс:
public class User implements SQLData {
public String name;
public Integer age;
public boolean isWorks;
public Date birthdate;
private String sql_type;
@Override
public String getSQLTypeName() throws SQLException {
return sql_type;
}
@Override
public void readSQL(SQLInput stream, String typeName) throws SQLException {
sql_type = typeName;
name = stream.readString();
age = stream.readInt();
isWorks = stream.readBoolean();
birthdate = stream.readDate();
}
@Override
public void writeSQL(SQLOutput stream) throws SQLException {
stream.writeString(name);
stream.writeInt(age);
stream.writeBoolean(isWorks);
stream.writeDate(birthdate);
}
}
Предполагается, что для установления соответствия с его аналогом в БД, он будет замаплен на SQL тип, который есть на Oracle:
CREATE TYPE USER
(
NAME VARCHAR(40),
AGE INTEGER,
ISWORKS BOOLEAN,
BIRTHDATE DATE,
);
В проекте используется Hibernate, но не полноценно, а просто в виде JPA провайдера. Никаких Connection и Session в явном виде.
В соответствии с доками всё, что нужно, чтобы получать из БД объект, который легко приводится к нашему User, это сделать:
ResultSet rs = stmt.executeQuery("...");
rs.next();
User user = (User) rs.getObject("USER");
Это надо как-то руками их замапить, например так:
java.util.Map map = con.getTypeMap(); //con is object of active connection class
map.put("USERSCHEMA.USER", Class.forName("User"));
con.setTypeMap(map);
Но, повторюсь, так как Connection не видно, то и не ясно как мапить. Кто-нибудь сталкивался с подобным? Можете предложить альтернативные способы, как сделать так, чтобы из БД с простым приведением можно было сразу получать объекты?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть класс , который выполняет деление столбиком и результат отображает графически выводом в консольКак протестировать такой метод?
Как сделать в Sketchware так что бы кнопка показывала ,а при повторном скрывала какой-либо контент?