Oracle 데이터베이스로 작업하기 위해 JPA + Hibernate로 설정하려고합니다. Intellij를 내 데이터 소스에 연결 한 다음 데이터베이스 스키마를 사용하여 지속성 매핑을 생성했습니다. 그러나 나는 다음과 같은 코드를 실행할 때마다 나는java.sql.SQLException : ORA-00942 : 테이블 또는 뷰가 존재하지 않습니다 (Intellij가 생성 한 파일)
오류 (: ORA-00942 : java.sql.SQLException의를 테이블 또는 뷰가 존재하지 않음) : 얻을
public static void main(String[] args) {
System.out.println("Maven + Hibernate + Oracle");
PersistenceProvider persistenceProvider = new HibernatePersistence();
EntityManagerFactory entityManagerFactory = persistenceProvider.createEntityManagerFactory(
"NewPersistenceUnit",new HashMap());
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
AdministrationUser user = new AdministrationUser();
user.setUserName("mjh");
user.setName("Brendan");
user.setCreateDate(Timestamp.valueOf("2007-09-23 10:10:10.0"));
user.setCreateBy("Brendan");
user.setModDate(Timestamp.valueOf("2007-09-23 10:10:10.0"));
user.setModBy("Brendan");
entityManager.persist(user);
entityManager.getTransaction().commit();
}
의 persistence.xml 내가 의도적으로 url 및 암호와 사용자 이름 만 내 코드에서 나는 동일한 URL을 사용했기 때문에 그들이이 올바른지를 제거한
public class AdministrationUser {
private long administrationUserId;
private String userName;
private String name;
private Timestamp createDate;
private String createBy;
private Timestamp modDate;
private String modBy;
@Id
@Column(name = "administrationUserId", nullable = false, insertable = true, updatable = true, precision = 0)
public long getAdministrationUserId() {
return administrationUserId;
}
public void setAdministrationUserId(long administrationUserId) {
this.administrationUserId = administrationUserId;
}
@Basic
@Column(name = "userName", nullable = true, insertable = true, updatable = true, length = 64)
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Basic
@Column(name = "name", nullable = true, insertable = true, updatable = true, length = 64)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Basic
@Column(name = "createDate", nullable = true, insertable = true, updatable = true)
public Timestamp getCreateDate() {
return createDate;
}
public void setCreateDate(Timestamp createDate) {
this.createDate = createDate;
}
@Basic
@Column(name = "createBy", nullable = true, insertable = true, updatable = true, length = 15)
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
@Basic
@Column(name = "modDate", nullable = true, insertable = true, updatable = true)
public Timestamp getModDate() {
return modDate;
}
public void setModDate(Timestamp modDate) {
this.modDate = modDate;
}
@Basic
@Column(name = "modBy", nullable = true, insertable = true, updatable = true, length = 15)
public String getModBy() {
return modBy;
}
public void setModBy(String modBy) {
this.modBy = modBy;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="NewPersistenceUnit">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>edu.rit.its.coopEval.model.AdministrationUser</class>
<properties>
<property name="hibernate.connection.url" value=""/>
<property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
<property name="hibernate.connection.username" value=""/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
, 사용자 이름 : 및 지속성 클래스는 다음과 같습니다 , 그리고 암호를 두꺼비에 데이터베이스에 연결하고 테이블을 만듭니다. 나는 그 문제가 뭔지 전혀 모른다.
데이터베이스의 테이블을 "administration_user"라고도합니다. – GandalfIX
예, "AdministrationUser" – mhickson