sirven query que para org objeto métodos los funciones fechas ejemplos curso contiene comparar cada java sql hibernate

java - funciones - para que sirven cada uno de los métodos que contiene el objeto query org hibernate query



Obtener el nombre de la columna de la propiedad asignada con Hibernate (4)

Esto recuperará los composites de un nivel y las asignaciones de propiedades normales:

String columnName(String name) { PersistentClass mapping = configuration.getClassMapping(ExtendedPerson.class.getName()); Property property = mapping.getProperty(name); if(property.isComposite()){ Component comp = (Component) property.getValue(); property = comp.getProperty(StringHelper.unroot(name)); assert ! property.isComposite(); //go only one level down } Iterator<?> columnIterator = property.getColumnIterator(); Column col = (Column) columnIterator.next(); assert ! columnIterator.hasNext(); return col.getName(); }

¿Cómo puedo acceder a la asignación de Hibernate de mi modelo para averiguar el nombre de columna de una propiedad?

El nombre de la columna no se especifica en la asignación, por lo que Hibernate lo genera automáticamente. Me gustaría crear una declaración SQL nativa que incluya este nombre de columna.


Gracias a Jherico descubrí cómo hacerlo:

((Column) sessionFactoryBean.getConfiguration().getClassMapping(Person.class.getName()) .getProperty("myProperty").getColumnIterator().next()).getName();


Tienes que tener acceso al objeto de configuración de hibernación.


((AbstractEntityPersister) sessionFactory.getClassMetadata(o.getClass())) .getPropertyColumnNames(property)[0];