Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как написать тест для проверки работы с бд? / 25 сообщений из 27, страница 1 из 2
27.07.2014, 12:23
    #38706735
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
Всем привет!

Как/какие написать тесты для проверки работы с бд?

Мои классы для работы с бд:

Это реализация добавления и чтения данных из бд.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
public class AccountDaoImpl implements AccountDao {

    public void addAccount(Account account) throws SQLException {
        Session session = null;
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            session.beginTransaction();
            session.save(account);
            session.getTransaction().commit();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage(), "Ошибка I/O", JOptionPane.OK_OPTION);
        } finally {
            if (session != null && session.isOpen()) {
                session.close();
            }
        }
    }

    public void updateAccount(Account account) throws SQLException{
        Session session = null;
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            session.beginTransaction();
            session.update(account);
            session.getTransaction().commit();
        }
        catch (Exception e){
            JOptionPane.showMessageDialog(null, e.getMessage(), "I/O exception", JOptionPane.OK_OPTION);
        }
        finally {
            if (session != null && session.isOpen()) {
                session.close();
            }
        }
    }

    public Account getAccountById(Integer id) throws SQLException {
        Session session = null;
        Account account = null;
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            account = (Account) session.load(Account.class, id);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage(), "I/O exception", JOptionPane.OK_OPTION);
        } finally {
            if (session != null && session.isOpen()) {
                session.close();
            }
        }
        return account;
    }
}



Создание сессии:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class HibernateUtil {
    private static SessionFactory sessionFactory = null;

    static {
        try {
            //creates the session factory from hibernate.cfg.xml
            sessionFactory = new Configuration().configure().buildSessionFactory();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}



Работа с дао:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public class Factory {

    private static AccountDao accountDao = null;
    private static Factory instance = null;

    public static synchronized Factory getInstance() {
        if (instance == null) {
            instance = new Factory();
        }
        return instance;
    }

    public AccountDao getAccountDao() {
        if (accountDao == null) {
            accountDao = new AccountDaoImpl();
        }
        return accountDao;
    }
}



Спасибо.
...
Рейтинг: 0 / 0
27.07.2014, 14:03
    #38706745
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
_libertas_,

Понял как делать. Всем спасибо!
...
Рейтинг: 0 / 0
27.07.2014, 23:05
    #38706885
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
Почему у меня происходят ошибки?:

Код: java
1.
2.
testUpdateAccount(ru.testtask.accountservice.dao.TestAccountDaoImpl)  Time elapsed: 2.033 sec  <<< ERROR!
org.hibernate.LazyInitializationException: could not initialize proxy - no Session



Вот мой тест:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
public class TestAccountDaoImpl {
 
    Account expected1;
    Account expected2;
    Account result;
 
    @Before
    public void setUp() {
        expected1 = new Account(1, 100L);
        expected2 = new Account(1, 200L);
 
    }
 
    @Test
    public void testUpdateAccount() {
        try {
            Factory.getInstance().getAccountDao().addAccount(expected1);
            Factory.getInstance().getAccountDao().updateAccount(expected2);
            result = Factory.getInstance().getAccountDao().getAccountById(1);
 
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e.getMessage(), "sql exception", JOptionPane.OK_OPTION);
        }
        assertEquals("UpdateAccountError", expected2, result);
    }
 
    @AfterClass
    public static void testTruncateTable(){
        Session session = HibernateUtil.getSessionFactory().openSession();
        String hql = String.format("delete from %s", "account");
        Query query = session.createQuery(hql);
        query.executeUpdate();
    }
}
...
Рейтинг: 0 / 0
28.07.2014, 09:10
    #38706981
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
Может кто знает из-за чего ошибка?
...
Рейтинг: 0 / 0
28.07.2014, 09:12
    #38706982
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
ну так остальной код покажи, не телепаты ж) Особенно ДАО свое
...
Рейтинг: 0 / 0
28.07.2014, 09:18
    #38706987
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
забыл ник,

так дао у меня в первом сообщении.
...
Рейтинг: 0 / 0
28.07.2014, 11:03
    #38707059
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
тогда код Account :)

Предположу что валится здесь -

assertEquals("UpdateAccountError", expected2, result);

в аккаунте есть какая-то связь one-to-many, которая используется в методе equals, а так как сессии нет - то естесвенно валится lazyInitialization
...
Рейтинг: 0 / 0
28.07.2014, 11:54
    #38707120
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
забыл ник,
нет такой связи:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
@Entity
@Table(name = "account")
public class Account {

    @Id
    @Column(name = "id")
    private int id;

    @Column(name = "value")
    private Long value;

    public Account(){
    }

    public Account(int id, Long value){
        this.id = id;
        this.value = value;
    }

    public int getId() {
        return id;
    }

    public Long getValue() {
        return value;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setValue(Long value) {
        this.value = value;
    }

    public void addAmount(Long value){
        this.value = this.value + value;
    }
}
...
Рейтинг: 0 / 0
28.07.2014, 12:27
    #38707160
DDiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
на какой строке падает то? обычно это указано в стектрейсе
...
Рейтинг: 0 / 0
28.07.2014, 13:05
    #38707211
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
DDiver,

вот полная ошибка:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
Hibernate: insert into account (value, id) values (?, ?)
Hibernate: update account set value=? where id=?
Hibernate: insert into account (value, id) values (?, ?)
Tests run: 3, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 3.194 sec <<< FAILURE!
testUpdateAccount(ru.testtask.accountservice.dao.TestAccountDaoImpl)  Time elapsed: 2.623 sec  <<< ERROR!
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
	at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:165)
	at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:286)
	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:185)
	at ru.testtask.accountservice.model.Account_$$_jvst48_0.toString(Account_$$_jvst48_0.java)
	at java.lang.String.valueOf(String.java:2979)
	at org.junit.Assert.format(Assert.java:752)
	at org.junit.Assert.failNotEquals(Assert.java:743)
	at org.junit.Assert.assertEquals(Assert.java:118)
	at ru.testtask.accountservice.dao.TestAccountDaoImpl.testUpdateAccount(TestAccountDaoImpl.java:52)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
...
Рейтинг: 0 / 0
28.07.2014, 14:49
    #38707328
DDiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
Падает, потому что ассерт пытаеться выполнить toString() для вашего объекта, а он в свою очередь дергает что-то что спроксировал хибер. Проблема в вашем методе toString()
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
static public void failNotEquals(String message, Object expected, Object actual) {
        fail(format(message, expected, actual));
    }

    public static String format(String message, Object expected, Object actual) {
        String formatted = "";
        if (message != null && message.length() > 0) {
            formatted = message + " ";
        }
        return formatted + "expected:<" + expected + "> but was:<" + actual + ">";
    }
...
Рейтинг: 0 / 0
28.07.2014, 14:52
    #38707333
DDiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
не тот кусок кода :)
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
static private void failNotEquals(String message, Object expected,
            Object actual) {
        fail(format(message, expected, actual));
    }

    static String format(String message, Object expected, Object actual) {
        String formatted = "";
        if (message != null && !message.equals("")) {
            formatted = message + " ";
        }
        String expectedString = String.valueOf(expected);
        String actualString = String.valueOf(actual);
        if (expectedString.equals(actualString)) {
            return formatted + "expected: "
                    + formatClassAndValue(expected, expectedString)
                    + " but was: " + formatClassAndValue(actual, actualString);
        } else {
            return formatted + "expected:<" + expectedString + "> but was:<"
                    + actualString + ">";
        }
    }
...
Рейтинг: 0 / 0
28.07.2014, 14:58
    #38707344
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
DDiver,

спасибо!

А можно поподробней?

Мне метод toString() нужно переопределять для account?

Что значит метод : failNotEquals, где он используется?
...
Рейтинг: 0 / 0
28.07.2014, 16:57
    #38707467
DDiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
Код: java
1.
2.
3.
4.
5.
6.
	at ru.testtask.accountservice.model.Account_$$_jvst48_0.toString(Account_$$_jvst48_0.java)
	at java.lang.String.valueOf(String.java:2979)
	at org.junit.Assert.format(Assert.java:752)
	at org.junit.Assert.failNotEquals(Assert.java:743)
	at org.junit.Assert.assertEquals(Assert.java:118)
	at ru.testtask.accountservice.dao.TestAccountDaoImpl.testUpdateAccount(TestAccountDaoImpl.java:52)


С низу вверх последовательность вызовов методов, начиная от вашего вызова
Код: java
1.
assertEquals("UpdateAccountError", expected2, result);


и до метода внутри самого junit
Код: java
1.
String expectedString = String.valueOf(expected);


замените в своем методе session.load() на session.get() и всё будет хорошо, я думаю.

http://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/impl/SessionImpl.html#load(java.lang.String, java.io.Serializable)
...
Рейтинг: 0 / 0
28.07.2014, 17:01
    #38707471
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
DDiver,

Понятно, спасибо большое!
...
Рейтинг: 0 / 0
29.07.2014, 11:02
    #38707887
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
DDiver,

авторзамените в своем методе session.load() на session.get() и всё будет хорошо, я думаю.

В моем методе нет session.load(). Или я что-то не понимаю?
...
Рейтинг: 0 / 0
29.07.2014, 11:24
    #38707923
DDiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
_libertas_,
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public Account getAccountById(Integer id) throws SQLException {
        Session session = null;
        Account account = null;
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            account = (Account) session.load(Account.class, id);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage(), "I/O exception", JOptionPane.OK_OPTION);
        } finally {
            if (session != null && session.isOpen()) {
                session.close();
            }
        }
        return account;
    }
...
Рейтинг: 0 / 0
29.07.2014, 12:04
    #38707969
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
DDiver,

Точно :), спасибо!

Правда у меня теперь другие ошибки появились:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 2.073 sec <<< FAILURE!
ru.testtask.accountservice.dao.TestAccountDaoImpl  Time elapsed: 2.068 sec  <<< ERROR!
org.hibernate.hql.internal.ast.QuerySyntaxException: account is not mapped [delete from account]
	at org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:96)
	at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:120)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:234)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158)
	at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:126)
	at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:88)
	at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:190)
	at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301)
	at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)
	at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1800)
	at ru.testtask.accountservice.dao.TestAccountDaoImpl.beforeTestTruncateTable(TestAccountDaoImpl.java:28)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: account is not mapped
	at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:189)
	at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:109)
	at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:95)
	at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:331)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3633)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3522)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:706)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.deleteStatement(HqlSqlBaseWalker.java:435)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:263)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:278)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)
	... 30 more



Я добавил только очистку таблиц перед запуском теста:

Код: java
1.
2.
3.
4.
5.
6.
7.
@BeforeClass
    public static void beforeTestTruncateTable(){
        Session session = HibernateUtil.getSessionFactory().openSession();
        String hql = String.format("delete from %s", "account");
        Query query = session.createQuery(hql);
        query.executeUpdate();
    }
...
Рейтинг: 0 / 0
29.07.2014, 12:20
    #38707979
DDiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
_libertas_,
А если так :)
Код: java
1.
String hql = String.format("delete from %s", "Account");
...
Рейтинг: 0 / 0
29.07.2014, 12:29
    #38707989
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
DDiver,

спасибо.

Вообще это немного странно, потому что у меня в модели:
Код: java
1.
@Table(name = "account")



и сам mysql работает как с account, так и с Account из cmd.
...
Рейтинг: 0 / 0
29.07.2014, 12:39
    #38708007
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
DDiver,
и сейчас он зависает:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
Hibernate: delete from account
Hibernate: insert into account (value, id) values (?, ?)
&#65533;&#65533;&#65533; 29, 2014 12:38:33 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 1205, SQLState: 41000
&#65533;&#65533;&#65533; 29, 2014 12:38:33 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Lock wait timeout exceeded; try restarting transaction
&#65533;&#65533;&#65533; 29, 2014 12:38:33 PM org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl release
INFO: HHH000010: On release of batch it still contained JDBC statements



и ничего не вставляет.
...
Рейтинг: 0 / 0
29.07.2014, 13:07
    #38708051
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
_libertas_и сам mysql работает как с account, так и с Account из cmd.
mysql работает с SQL и именами таблиц.
хибер работает с HQL и именами сущностей.
...
Рейтинг: 0 / 0
29.07.2014, 13:23
    #38708077
DDiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
_libertas_,

попробуйте добавить транзакции в ваш метод очистки таблицы. судя по сообщениям хибера, трабла именно в блокировке таблицы другой транзакцией. А там хз, может и не в этом дело.
http://dba.stackexchange.com/questions/21464/error-code-1205-lock-wait-timeout-exceeded-in-mysql
...
Рейтинг: 0 / 0
29.07.2014, 13:23
    #38708078
_libertas_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
Blazkowicz,

а то что я в модели указал:

Код: java
1.
@Table(name = "account")



это не имя сущности?
...
Рейтинг: 0 / 0
29.07.2014, 13:32
    #38708089
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать тест для проверки работы с бд?
_libertas_а то что я в модели указал:
Код: java
1.
@Table(name = "account")


это не имя сущности?
Нет. Слово Table в комбинации с name. Не на какие мысли не наводит?
А аннотация @Entity вообще в диковинку?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как написать тест для проверки работы с бд? / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]