【问题标题】:Get column and table name from a list from a model in Hibernate从 Hibernate 中的模型的列表中获取列和表名
【发布时间】:2015-01-15 22:47:50
【问题描述】:

A 类的 Hibernate 映射 XML:

<class name="com.example.A" table="table_a">
  <id name="id" column="id">
    <generator class="native"/>
  </id>
  <property name="foo" table="bar"/>
  <list name="bs" table="table_b">
    <key column="kee">
    <index column="indx">
    <many-to-many column="bss" class="com.example.B"/>
  </list>
</class>

我可以得到A类的表名如下:

configuration.getClassMapping(A.getName())
    .getTable()
    .getName();

我还可以得到属性“foo”的列名如下:

Column col = (Column) configuration
    .getClassMapping(clazz.getName())
    .getProperty(propertyName)
    .getColumnIterator().next();
col.getName();

但我不知道如何获得:

  1. 列表“bs”的表名//"table_b"

  2. 列表“bs”的“key”列的名称//"kee"

  3. 列表“bs”的“index”列的名称//"indx"

  4. B类多对多关系的列名//"bss"

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    找到问题 1,2,3 的解决方案:

    (1)列表“bs”的表名 //“table_b”

    return collection.getCollectionTable().getName();
    

    (2)列表“bs”的“key”列的名称//“kee”

    return ((Column) collection.getKey().getColumnIterator().next()).getName();
    

    (3)列表“bs”的“index”列的名称//“indx”

    org.hibernate.mapping.List list = (org.hibernate.mapping.List) collection;
    return ((Column) collection.getIndex().getColumnIterator().next()).getName();
    

    仍然没有答案 4。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-25
      • 2014-09-17
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      相关资源
      最近更新 更多