Java, конвертировать (приводить) сериализуемые объекты в другие объекты - PullRequest
5 голосов
/ 29 сентября 2011

Я использую метод Session.save() (в Hibernate), чтобы сохранить мои объекты сущностей, которые возвращают объект типа java.io.Serializable.

Возвращаемое значение является сгенерированным первичным ключом для сущности.

Сгенерированный первичный ключ имеет тип long (или bigint).

Вопрос в том, как: Как преобразовать или преобразовать возвращаемое значение в long?

Serializable result = session.save(myEntityObject);

//This line of code fails. 
long r = (long)result;

Ответы [ 5 ]

7 голосов
/ 29 сентября 2011

Попробуйте привести результат (поскольку это не примитив) к Long вместо long.

Long r = (Long)result;
long longValue = r.longValue();
1 голос
/ 29 сентября 2011

Вы пытались использовать отладчик и разбивать на эту строку, чтобы увидеть, какой именно "результат"?

Это может быть BigDecimal или Long или ...

В качестве альтернативы, вы не можете простовызовите метод получения первичного ключа для объекта - я бы надеялся, что он будет установлен к этому моменту.

HTH, Крис

1 голос
/ 29 сентября 2011

Попробуйте

long r = Long.valueOf(String.valueOf(result)).longValue();
0 голосов
/ 29 сентября 2011

Вы должны были указать тип ошибки, которую вы получаете! В любом случае это должно работать ..

long r = Long.valueOf(result) 
0 голосов
/ 29 сентября 2011

Попробуйте использовать long r = ((Long) result).getLong().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...