Roo 데이터베이스 리버스 엔지니어링을 시도하고 있으며 첫 번째 실제 데이터베이스에 문제가있었습니다. 이 질문에 대해서는 문제를 보여주는 최소한의 예를 만들었습니다. DB에는 사람이 0 개 이상의 그룹에 속할 수 있기 때문에 sl_person 테이블 인 sl_group 테이블과 브리지 테이블 sl_person_group이 있습니다. 이클립스에서 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`);
나는 스프링 소스 툴 스위트와 함께 새로운 봄 캥거루 프로젝트를 생성 : 파일 -> 새로 만들기 -> 프로젝트 -> 봄 캥거루 프로젝트
Project Name: rooperson
Top level package name: org.obliquid.rooperson
Next -> Finish
그런 다음 루 쉘에서 내가 입력 :
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] 파일에 정의되어 있습니다. 빈 속성 '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 메소드를 호출하지 못했습니다. 중첩 예외는 org.hibernate.AnnotationException : referencedColumnNames (id_group) of org.obliquid.rooperson.domain.SlPersonGroup.idGroup을 참조하는 org.obliquid.rooperson.domain.SlGroup은 단일 속성 에서 org.springframework로 매핑되지 않습니다.
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;
가 어떻게이 문제를 해결할 수
: beans.factory.support.BeanDefinitionValueResolver.resolveReference (BeanDefinitionValueResolver.java:328는)생성 된 파일 SlPersonGroup_Roo_DbManaged.aj로 시작? 더 많은 정보를 제공해야한다면 알려주세요.
동일한 문제가 있습니다. 알아 냈어? 그렇다면 공유하는 것을 좋아합니다. –
아니요, 저는 ... Roo 1.2가 나올 때 다시 시도 할 것입니다. – stivlo