У меня есть Hibernate Usertype примерно так:
public class UUIDHibernateType implements UserType
{
private static final int[] SQL_TYPES = new int[] { Types.CHAR };
public int[] sqlTypes ()
{
return SQL_TYPES;
}
// ...
}
У меня проблема в том, что Hibernate генерирует сценарий sql с типами CHAR (1), что не правильно, мне действительно нужно CHAR(36).Как бы определить длину по умолчанию для пользовательского типа?
На данный момент я застрял с определением типа sql следующим образом:
<id name="id"
type="org.openscada.ae.server.storage.jdbc.internal.UUIDHibernateType">
<column name="ID" length="36" sql-type="CHAR(36)" not-null="true" />
<generator class="assigned" />
</id>
Это не должно быть проблемойв этом случае, но как бы я это сделал, если возникнет такая необходимость?
PS: Если у кого-то есть идея, как прозрачно обрабатывать UUID и агентировать базу данных, я благодарен.