¡Estoy intentando construir una Play! aplicación ejecutándose contra una base de datos existente donde todas las columnas tienen caracteres de subrayado para separar las palabras. Esto significa que tengo que poner una anotación @Column
en cada campo para especificar un nombre diferente. ¿Hay alguna forma de jugar? usar guiones bajos por defecto?¿Hay alguna manera de hacer que Play framework y JPA usen guiones bajos en los nombres de las columnas?
Respuesta
Si Play utiliza Hibernate, como sugieren las otras respuestas, tendrá que implement a custom NamingStrategy
.
Aquí hay una NamingStrategy ejemplo que convierte todos los nombres de las columnas de camello inferior a minúsculas con guiones bajos, usando Guava:
public class CustomNamingStrategy extends ImprovedNamingStrategy {
private static final long serialVersionUID = -306957679456120781L;
@Override
public String columnName(final String columnName) {
return CaseFormat.LOWER_CAMEL
.to(CaseFormat.LOWER_UNDERSCORE, columnName);
}
}
Configurar así:
añadir la siguiente línea a aplicación .conf para configurar el NamingStrategy
hibernate.ejb.naming_strategy=<your naming strategy classname>
Referencia:
AFAIK ImprovedNamingStrategy hace precisamente eso. Convierte a subrayado minúsculo +. Entonces, solo tienes que configurarlo en ImprovedNamingStrategy. +1 para una buena respuesta de todos modos;) – Bogdan
@Bogdan a) gracias! b) cierto, no verificó eso. Pero francamente: la forma de Guava parece más efectiva que la forma de Hibernate, así que esto en realidad puede ser una mejora sin embargo :-) –
¡Eso funciona genial! ¡Gracias! – Aaron
Bueno, si leo el documento correctamente, el marco de juego está utilizando Hibernate como la implementación de JPA. AFAIK, no hay forma de cambiar la denominación estándar de Hibernate, por lo que tendría que agregar las anotaciones o proporcionar los nombres de las columnas en el archivo XML de asignación.
Parece que la respuesta de @SeanPatrickFloyd está funcionando (de acuerdo con el OP y otras preguntas que vi en SO). ¿Le importaría editar/eliminar su respuesta? mejor que obtener votos a la baja y más claro para otros lectores! – Stefano
La solución dada funciona muy bien, pero como st En los comentarios, ImprovedNamingStrategy hace eso, por lo que no es necesario usar guayaba.
Una mejora nombrar estrategia que prefiere guiones incrustados a mixtas nombres de los casos
Usted puede simplemente añadir hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
en su application.conf
(Probado en Juego! Marco 1.2.5)
- 1. ¿Se deben usar guiones bajos en los nombres de las columnas?
- 2. Cartas, números, guiones bajos y guiones bajos Regex
- 3. Lucene búsqueda y guiones bajos
- 4. Reemplazar los guiones bajos en la cadena
- 5. Rails nombres de controlador con guiones en lugar de guiones bajos
- 6. Regex ignora guiones bajos
- 7. ¿Por qué los compiladores de C anteponen los guiones bajos a los nombres externos?
- 8. Uso de guiones bajos en variables Java y nombres de métodos
- 9. ¿Debo permitir guiones bajos con nombre y apellido?
- 10. Desvinculación de palabras CSS/salto de línea en guiones bajos además de espacios en blanco y guiones
- 11. ¿Hay alguna manera de hacer que vim reconozca los números de línea al final de los nombres de archivo?
- 12. Guiones en nombres de columnas en MySQL DB
- 13. ¿Hay alguna manera de hacer que Visual Studio deje de sangrar espacios de nombres?
- 14. ¿Hay alguna forma de iterar y reflejar los nombres y valores de los miembros que figuran en las enumeraciones?
- 15. ¿Es posible definir dinámicamente los nombres de las columnas en Hibernate/JPA?
- 16. ¿Hay alguna manera de hacer que Guice Grapher trabaje?
- 17. ¿Hay alguna manera de hacer que un ExecutorService funcione recursivamente?
- 18. ¿Reemplazar espacios con guiones bajos en JavaScript?
- 19. ¿Hay alguna manera de hacer que TFS se pueda enlazar?
- 20. ¿Hay alguna manera de decirle a Doxygen que ignore (todos) los espacios de nombres?
- 21. ¿Hay alguna manera en Oracle de hacer que una columna no distinga entre mayúsculas y minúsculas?
- 22. ¿Hay alguna manera de hacer que UserControl sea inafocable?
- 23. ¿Hay alguna manera fácil de hacer que ScrollViewer sea "hinchable"?
- 24. ¿Es una convención prefijar las clases privadas con guiones bajos?
- 25. ¿Hay alguna manera de hacer que Excel preserve los atributos XML en el elemento raíz?
- 26. JHAML y play framework?
- 27. ¿Cómo tratar los espacios en los nombres de las columnas?
- 28. ¿Hay alguna restricción en los nombres de alias de columnas de Postgres?
- 29. Play Framework y DB2
- 30. ¿Hay alguna manera de hacer que las pruebas de refresco fallen en pruebas indefinidas?
Debe insertar guiones ¿basado en que? – Thomas
las palabras están separadas por guiones bajos en lugar de camel case – Aaron