我想袋鼠數據庫逆向工程和我有一個問題,我的第一個真正的數據庫。對於這個問題,我創建了一個顯示問題的最小示例。在DB中,有一個sl_person表是sl_group表和sl_person_group橋表,因爲一個人可以屬於0個或多個組。Spring Roo的referencedColumnNames沒有映射到一個單一的財產
CREATE DATABASE `rooperson` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE IF NOT EXISTS `sl_group` (
`id_group` int(11) NOT NULL DEFAULT '0',
`name` varchar(80) NOT NULL,
`description` text,
UNIQUE KEY `id_group_idx` (`id_group`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `sl_person` (
`id_person` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) DEFAULT NULL,
`surname` varchar(64) DEFAULT NULL,
PRIMARY KEY (`id_person`),
KEY `name` (`name`),
KEY `surname` (`surname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5727 ;
CREATE TABLE IF NOT EXISTS `sl_person_group` (
`id_person` int(11) NOT NULL DEFAULT '0',
`id_group` int(11) NOT NULL DEFAULT '0',
UNIQUE KEY `id_person_group_idx` (`id_person`,`id_group`),
KEY `id_group` (`id_group`)
) ENGINE=InnoDB DEFAULT CHARSET;
ALTER TABLE `sl_person_group`
ADD CONSTRAINT `sl_person_group_ibfk_2` FOREIGN KEY (`id_group`) REFERENCES `sl_group` (`id_group`),
ADD CONSTRAINT `sl_person_group_ibfk_1` FOREIGN KEY (`id_person`) REFERENCES `sl_person` (`id_person`);
在Eclipse中創建一個新的Spring Roo項目,春源工具套件:文件 - >新建 - >項目 - > Spring Roo的項目
Project Name: rooperson
Top level package name: org.obliquid.rooperson
Next -> Finish
然後在小豆殼I型:
persistence setup --database MYSQL --provider HIBERNATE
database properties set --key database.password --value xxxxx
database properties set --key database.username --value rooperson
database properties set –key database.url –value jdbc:mysql://localhost/rooperson?zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8
database reverse engineer --schema PUBLIC --package org.obliquid.rooperson.domain
web mvc setup
然後我固定a small problem with stylesheets。
然而,當我嘗試啓動GlasshFish 3.1.1,應用程序不與下面的錯誤開始。
INFO:2011-09-11 20:42:59,562 [admin-thread-pool-4848(3)] ERROR org.springframework.web.context.ContextLoader - 上下文初始化失敗 org.springframework.beans.factory在文件[/usr/local/glassfish3/glassfish/domains/domain1/eclipseApps/rooperson/WEB-INF/classes/META-INF/spring/applicationContext.xml]中定義錯誤創建名爲「transactionManager的」 豆:.BeanCreationException: 設置bean屬性'entityManagerFactory'時無法解析對bean'entityManagerFactory'的引用; 嵌套異常是org.springframework.beans.factory.BeanCreationException:名爲 '的entityManagerFactory' 在文件中定義 [/ USR /本地/ glassfish3 /的glassfish /域/域1/eclipseApps/rooperson/WEB-INF /類 錯誤創建豆/META-INF/spring/applicationContext.xml]: 調用init方法失敗;嵌套的異常是org.hibernate.AnnotationException:referencedColumnNames(id_group)的org.obliquid.rooperson.domain.SlPersonGroup.idGroup引用org.obliquid.rooperson.domain.SlGroup未映射到在org.springframework單個屬性 。 beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
生成的文件SlPersonGroup_Roo_DbManaged.aj開頭:
privileged aspect SlPersonGroup_Roo_DbManaged {
@ManyToOne
@JoinColumn(name = "id_group", referencedColumnName = "id_group", nullable = false, insertable = false, updatable = false)
private SlGroup SlPersonGroup.idGroup;
@ManyToOne
@JoinColumn(name = "id_person", referencedColumnName = "id_person", nullable = false, insertable = false, updatable = false)
private SlPerson SlPersonGroup.idPerson;
我怎樣才能解決這個問題?如果我應該提供更多信息,請告訴我。
具有相同的問題。你弄明白了嗎?如果是這樣,如果你願意分享,會很樂意。 – 2011-10-18 17:36:01
不,我沒有...當Roo 1.2出來時我會再試一次。 – stivlo