JPA / MySql выпуск - PullRequest
       2

JPA / MySql выпуск

0 голосов
/ 15 марта 2012

Я создаю приложение на основе JPA, используя mysql и ecliselink. У меня очень странная проблема при попытке вставить материал в мою базу данных. Я могу вставить данные в одну таблицу, но когда дело доходит до одного мая и наоборотчто-то идет не так. В настоящее время у меня есть 2 основные и 1 справочная таблица (она содержит внешние ключи двух других таблиц). Это странно, потому что у меня нет «последовательности» в моей таблице базы данных, когда я пытаюсь вставить данные в любую изТаблицы Я получаю это исключение:

[EL Info]: 2012-03-15 17:52:28.64--ServerSession(18621340)--EclipseLink, version: Eclipse Persistence Services - 2.3.2.v20111125-r10461 
[EL Info]: 2012-03-15 17:52:29.23--ServerSession(18621340)--file:/D:/git-eclipse/Martin/reference/build/classes/_reference login successful 
[EL Warning]: 2012-03-15 17:52:29.389--ClientSession(31843177)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException 
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'eclipse1.sequence' doesn't exist 
Error Code: 1146 
Call: UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ? 
bind => [2 parameters bound] 
Query: DataModifyQuery(name="SEQUENCE" sql="UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?") 

Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'eclipse1.sequence' doesn't exist 
Error Code: 1146 
Call: UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ? 
bind => [2 parameters bound] 
Query: DataModifyQuery(name="SEQUENCE" sql="UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?") 
[EL Info]: 2012-03-15 17:52:29.394--ServerSession(18621340)--file:/D:/git-eclipse/Martin/reference/build/classes/_reference logout successful 
Exception in thread "main" java.lang.IllegalStateException: Attempting to execute an operation on a closed EntityManager. 
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.verifyOpen(EntityManagerImpl.java:1665) 
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.close(EntityManagerImpl.java:1529) 
at OneToManyRelation.main(OneToManyRelation.java:47) 

Я публикую один класс только потому, что другие очень похожи

@Entity

    @Table(name="category")

    public class Category {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="CategoryID")
    private int CategoryID;

/**
* @return the id
*/
public int getId() {
return CategoryID;
}

/**
* @param id the id to set
*/
public void setId(int CategoryID) {
this.CategoryID = CategoryID;
}

@Column(name="category", nullable=false, length=50, insertable=true)
private String category;

/**
* @return the category
*/
public String getCategory() {
return category;
}


public void setCategory(String category) {
this.category = category;
}

@OneToMany(cascade=CascadeType.ALL)
@JoinTable(name = "templateemail", joinColumns = {
@JoinColumn(name="categoryId", unique = true) 
},
inverseJoinColumns = {
@JoinColumn(name="templateId")
}
)
private Set<Template> template;

/**
* 
*/
public Set<Template> getChildren() {
return template;
}

/**
* 
*/
public void setChildren(Set<Template> template) {
this.template = template;
}

}

У вас есть идеи, что случилось с моим кодом?

Заранее спасибо

1 Ответ

2 голосов
/ 15 марта 2012

Просмотр кода поможет понять, что с ним не так.Но, судя только по сообщению об ошибке, кажется, что вы решили использовать генератор последовательности или таблицы, и этот генератор полагается (по умолчанию) на таблицу с именем sequence, которой нет в базе данных.

Создайте эту таблицу, или настройте генератор для использования существующей таблицы, или измените генератор идентификатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...