java - 如何指定 hibernate 连接映射?

标签 java mysql xml hibernate orm

假设我有以下两个数据库:

Employee
|Name|Age|Sex|

Table
|Employee_Name|Location|Brand|

我希望执行以下形式的查询:

select * from table,employee where table.employee_name=employee.name;

现在,我已经为这两个表指定了 hibernate .hbm.xml 文件。但在本例中,查询的返回值是一个联接。那么,我该如何指定它的数据结构呢?我是否制作一个单独的文件,例如:

<id name="name" type="string" column="name">
  <generator class="native">
  </generator>
</id>
<property name="age"
          type="string"
          column="age" />
<property name="sex"
          type="string"
          column="sex" />
<property name="location"
          type="string"
          column="location" />
<property name="brand"
          type="string"
          column="brand" />

然后编写 java-mappings 文件并为每个文件创建 getter 和 setter?

或者...我是否只需将列添加到现有的 java 文件而不修改任何 XML?

public class EmployeeModel // THIS IS THE JAVA MAPPING FILE FOR EMPLOYEE
{    private String name;
     private String age;
     private String sex;
     private String location;
     private String brand;

 // Getters and Setters for the above values.

现在,当我在这种情况下只需要员工信息时会发生什么? 请大家帮帮我。非常感谢!

最佳答案

注意:以下说明仅适用于出于某种原因想要使用 native SQL 的情况。

由于您不打算保留返回值,因此不应创建任何映射文件 (.hbm.xml)。 Hibernate 可以返回非托管对象。只需创建一个 EmployeeModel 类并使用它:

session.createSQLQuery("select employee.Name, employee.Age, employee.Sex, table.Location, table.Brand from table, employee where table.employee_name=employee.name")
    .setResultTransformer(Transformers.aliasToBean(EmployeeModel.class));

如下所述:http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html_single/#d5e8394

如果您只想要Employee,您可以这样做:

sess.createSQLQuery("select employee.* from from table, employee where table.employee_name=employee.name").addEntity(Employee.class);

此处对此进行了解释:http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html_single/#d5e8271

关于java - 如何指定 hibernate 连接映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17052560/

相关文章:

java - 使用 pageRequest 测试 spring 存储库

Java Spring-boot - 如何将@Autowired 与@ServerEndpoint 一起使用?

java - 相同的代码块执行时长不同

php - 负载平衡服务器的文件上传最佳解决方案

java - 在当前主题中找不到样式 'floatingActionButtonStyle'

mysql - 如何在as3中创建随机名称生成器

java - MapStruct 根据目标类型映射正确的对象实例

mysql - 通过 ODBC 连接检索的表情符号数据显示为问号

php - 如何从laravel集合中获取特定的数据片段?

java - 具有多个 .xml 文件的一个 Java 类