にマップされていない私は、Rooのデータベースリバースエンジニアリングをしようとしていますし、私は私の最初の本当のデータベースに問題がありました。この質問では、問題を示す最小限の例を作成しました。 DBには、sl_personテーブルsl_groupテーブルとブリッジテーブルsl_person_groupがあります。これは、人が0つ以上のグループに属している可能性があるためです。 Eclipseで春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`);
私は春のソースツールスイートで新しい春Rooのプロジェクトを作成します。ファイル - >新規 - >プロジェクト - >春Rooのプロジェクト
Project Name: rooperson
Top level package name: org.obliquid.rooperson
Next -> Finish
それから私は入力しROOシェルで:
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:59562 [管理スレッドプール4848(3)] ERROR org.springframework.web.context.ContextLoader - コンテキストの初期化に失敗しました org.springframework.beans.factory .BeanCreationException:エラー 'のTransactionManager' の名前でBeanを作成 定義されたファイルの[/usr/local/glassfish3/glassfish/domains/domain1/eclipseApps/rooperson/WEB-INF/classes/META-INF/spring/applicationContext.xml]: beanプロパティ 'entityManagerFactory'を設定しているときに、 'entityManagerFactory'というBeanへの参照を解決できません。 ネストされた例外はorg.springframework.beans.factory.BeanCreationExceptionです: ファイル '[/ usr/local/glassfish3/glassfish/domains/domain1/eclipseApps/rooperson/WEB-INF/classes]に定義された' entityManagerFactory ' /META-INF/spring/applicationContext.xml]: initメソッドの呼び出しに失敗しました。 referencedColumnNames(id_group)org.obliquid.rooperson.domain.SlPersonGroup.idGroupがorg.obliquid.rooperson.domain.SlGroup org.springframeworkにおける単一のプロパティ にマッピングされていない参照の :ネストされた例外は、org.hibernate.AnnotationExceptionあります。 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;
どのように私はこの問題を解決することができますか?より多くの情報を提供する必要がある場合は、私に知らせてください。
同じ問題があります。あなたはそれを把握しましたか?もしそうなら、もしあなたが分かれば大好きです。 –
いいえ、私はしませんでした... Roo 1.2が出てくるときにもう一度試してみます。 – stivlo