powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как написать тест для проверки работы с бд?
25 сообщений из 27, страница 1 из 2
Как написать тест для проверки работы с бд?
    #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
Как написать тест для проверки работы с бд?
    #38706745
_libertas_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_libertas_,

Понял как делать. Всем спасибо!
...
Рейтинг: 0 / 0
Как написать тест для проверки работы с бд?
    #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
Как написать тест для проверки работы с бд?
    #38706981
_libertas_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто знает из-за чего ошибка?
...
Рейтинг: 0 / 0
Как написать тест для проверки работы с бд?
    #38706982
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так остальной код покажи, не телепаты ж) Особенно ДАО свое
...
Рейтинг: 0 / 0
Как написать тест для проверки работы с бд?
    #38706987
_libertas_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник,

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

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

assertEquals("UpdateAccountError", expected2, result);

в аккаунте есть какая-то связь one-to-many, которая используется в методе equals, а так как сессии нет - то естесвенно валится lazyInitialization
...
Рейтинг: 0 / 0
Как написать тест для проверки работы с бд?
    #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
Как написать тест для проверки работы с бд?
    #38707160
DDiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на какой строке падает то? обычно это указано в стектрейсе
...
Рейтинг: 0 / 0
Как написать тест для проверки работы с бд?
    #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
Как написать тест для проверки работы с бд?
    #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
Как написать тест для проверки работы с бд?
    #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
Как написать тест для проверки работы с бд?
    #38707344
_libertas_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DDiver,

спасибо!

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

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

Что значит метод : failNotEquals, где он используется?
...
Рейтинг: 0 / 0
Как написать тест для проверки работы с бд?
    #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
Как написать тест для проверки работы с бд?
    #38707471
_libertas_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DDiver,

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

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

В моем методе нет session.load(). Или я что-то не понимаю?
...
Рейтинг: 0 / 0
Как написать тест для проверки работы с бд?
    #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
Как написать тест для проверки работы с бд?
    #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
Как написать тест для проверки работы с бд?
    #38707979
DDiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_libertas_,
А если так :)
Код: java
1.
String hql = String.format("delete from %s", "Account");
...
Рейтинг: 0 / 0
Как написать тест для проверки работы с бд?
    #38707989
_libertas_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DDiver,

спасибо.

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



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

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

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

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



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


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


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