我有问题在PostgreSQL数据库中用hibernate创建两个关联的表。我倾向于认为问题在于数据库(配置?),因为我尝试了几乎所有在Internet网站中提出的Hibernate方法,并且我仍然收到相同的错误。使用PostgreSql数据库之前是否需要配置?我不能在其他的方式解释出现的错误:PostgreSql不“识别”由休眠创建的表
“关系部门不存在”
我加入了两个实体的员工和部门,如下所示:
@Entity
@Table(name="EMPLOYEE")
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="employee_id")
private Long employeeId;
.
.
.
@ManyToOne
@JoinColumn(name="department_id")
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
private Department department;
而且
@Entity
@Table(name="DEPARTMENT")
public class Department implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="DEPARTMENT_ID")
private Long departmentId;
.
.
.
@OneToMany(mappedBy="department")
public Set<Employee> getEmployees() {
return employees;
}
public void setEmployees(Set<Employee> employees) {
this.employees = employees;
}
private Set<Employee> employees;
我正尝试用主要方法中的几条记录创建表格:
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
Department department = new Department();
department.setDepartmentName("Sales");
session.persist(department);
Employee emp1 = new Employee("Nina", "Mayers", "111");
Employee emp2 = new Employee("Tony", "Almeida", "222");
emp1.setDepartment(department);
emp2.setDepartment(department);
session.persist(emp1);
session.persist(emp2);
session.getTransaction().commit();
session.close();
的错误就行了上来:session.persist(department);
是否有人在PostgreSQL数据库经验丰富,帮我找到它为什么不能识别表/关系,并将其与错误出现:
“关系部门不存在”?
UPDATE:
我看过的日志文件。在Eclipse发出通常的消息之后,消息的最后一行是:“由于目标机器主动拒绝,所以无法建立连接”。我推断这个问题可能在连接。是否有任何属性,我应该设置(在pgAdmin中)以实现连接?我在Eclipse中设置了行
<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/testDB</property>
in cfg.xml文件。
大多数人喜欢这种情况是折叠。未加引号的标识符被折叠为小写。许多访问库会自动为您引用,而像psql这样的东西不会。 – 2013-04-26 19:04:56
你能澄清你的评论,并提出你的建议可以做什么?当你表达它时,我无法理解它。谢谢。 – arjacsoh 2013-04-26 19:11:59
你既有'DEPARTMENT'又有'department'',他们可能都应该有相同的大小写。 – 2013-04-26 19:31:54