Основное консольное приложение с Spring Roo - PullRequest
2 голосов
/ 07 ноября 2010

Я понимаю, что это не совсем то, как Roo предназначался для использования, но я должен был быстро показать демо с помощью Roo для запуска в консольном приложении.

Я создал базовое приложение сследующий скрипт Roo:

project --topLevelPackage com.xetius.maths
persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
entity --class ~.domain.Equation --testAutomatically
field number --fieldName firstNum --type java.lang.Integer --notNull
field number --fieldName secondNum --type java.lang.Integer --notNull
field string --fieldName operator --notNull
field number --fieldName answer --type java.lang.Integer

Далее я хочу добавить базовую консоль, добавив следующий класс

package com.xetius.maths;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MathMain {
    public static void main(String[] args) {
        ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        System.out.println("Here");
    }
}

Я планировал передать firstNum, operator и secondNum, добавить их вБД, затем вычислите ответ, добавьте его в БД, затем отобразите ответ.Если ответ не может быть рассчитан (например, с делением на 0), тогда откатите транзакцию обратно.

Это должно быть довольно просто, и я предполагаю, что это, однако, я не могу понять, какчтобы получить доступ к sessionFactory.Это подразумевается в чем-то другом, или я просто делаю что-то не так?

Я просто не могу этого сделать, или есть другой способ сделать это.Это все для демонстрации моих боссов, чтобы показать преимущества Roo, но, похоже, я не могу разобраться с этим вопросом

1 Ответ

1 голос
/ 19 февраля 2011

После загрузки контекста это очень просто

Equation eq = new Equation();
eq.setFirstNum(2);
eq.setSecondNum(2);
// and so on
eq.persist();

Если вам нужно удалить неправильную запись, вам нужно использовать

eq.remove();
...