Salut j'ai ce qui suit dans le domaine GrailsComment faire pour résoudre les erreurs Grails Colonne répétée dans le mappage pour l'entité? sur la base de données existant Postgresql
class Customer { static mapping = { table 'customer' // version is set to false, because this isn't available by default for legacy databases version false id column:'customerid' //generator:'identity', } Long customerid Long customergroupid String username String password String name String street String city String province String postcode String country Date dateregistered String balance Long parentid String parentrebate String metapath Long metalevel Integer smsreplystatus Integer status String reversalurl static constraints = { customerid(insert:false,update:false) customergroupid(max: 9999999999L) username(size: 1..20, blank: false) password(size: 1..32, blank: false) name(size: 1..20, blank: false) street(size: 0..50) city(size: 0..20) province(size: 0..20) postcode(size: 0..5) country(size: 0..20) dateregistered(nullable: true) balance() parentid(max: 9999999999L) parentrebate() metapath(size: 1..255, blank: false) metalevel(max: 9999999999L) smsreplystatus(max: 99999) status(max: 99999) reversalurl(size: 0..50) } String toString() { return "${customerid}" } }
i ont la base de données actuelle avec les données existantes, et a la cartographie de Gorm avec GRAG mais je reçois cette erreur
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is org.hibernate.MappingException: Repeated column in mapping for entity: postgresql.Customer column: customerid (should be mapped with insert="false" update="false") ... 23 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is org.hibernate.MappingException: Repeated column in mapping for entity: postgresql.Customer column: customerid (should be mapped with insert="false" update="false")
mise à jour: Échec avec la propriété n'existe pas d'erreur, sympa. Solution, ajoutez le nom: 'customerid' dans la fermeture de mappage pour la colonne d'ID personnalisée. Fonctionne pour moi dans MySQL, enfin. Peut conserver un schéma existant et donner un tour de test à grails ... – virtualeyes
en plus d'ajouter le nom attrib à mapping (et insert: false, update: false à Mapping, pas de contrainte), vous devez aussi ajouter une contrainte nullable: true sur votre colonne d'identifiant personnalisé; sinon, vous obtiendrez une erreur de propriété null pas bien documenté, tout cela - essentiellement passé quelques heures à essayer différentes combinaisons. Diminuer le temps avec un cadre de développement rapide, ironique – virtualeyes
insert: false, update: false pas nécessaire juste le mapping {id colonne: 'col', nom: 'col'} et les contraintes {col (nullable: true)} fait l'affaire pour moi, enfin! – virtualeyes