动态实体、动态字段设计

来源:互联网 发布:穿越火线淘宝网 编辑:程序博客网 时间:2024/04/29 23:40
package com.wxl.app.domain;public class FieldType {private Long id;private String name;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}


package com.wxl.app.domain;import java.util.Set;import java.util.TreeSet;public class Entity {private Long id;private String name;private String table;private Set<Field> fields = new TreeSet<Field>();public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getTable() {return table;}public void setTable(String table) {this.table = table;}public Set<Field> getFields() {return fields;}public void setFields(Set<Field> fields) {this.fields = fields;}}

package com.wxl.app.domain;public class Field {private Long id;private String label;private String name;private FieldType type;private Entity entity;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getLabel() {return label;}public void setLabel(String label) {this.label = label;}public String getName() {return name;}public void setName(String name) {this.name = name;}public FieldType getType() {return type;}public void setType(FieldType type) {this.type = type;}public Entity getEntity() {return entity;}public void setEntity(Entity entity) {this.entity = entity;}}

<?xml version="1.0"?><!DOCTYPE hibernate-mapping        SYSTEM        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" ><hibernate-mapping><class name="com.wxl.app.domain.FieldType" table="d_field_types"><id name="id" column="t_id"><generator class="sequence" /></id><property name="name" column="t_name" type="string" /></class></hibernate-mapping>

<?xml version="1.0"?><!DOCTYPE hibernate-mapping        SYSTEM        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" ><hibernate-mapping><class name="com.wxl.app.domain.Entity" table="d_entities"><id name="id" column="e_id"><generator class="sequence" /></id><property name="name" column="e_name" type="string" /><property name="table" column="e_table" type="string"></property><set name="fields"><key column="entity_id"></key><one-to-many class="com.wxl.app.domain.Field" /></set></class></hibernate-mapping>

<?xml version="1.0"?><!DOCTYPE hibernate-mapping        SYSTEM        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" ><hibernate-mapping><class name="com.wxl.app.domain.Field" table="d_fields"><id name="id" column="f_id"><generator class="sequence" /></id><property name="label" column="f_label" type="string"></property><property name="name" column="f_name" type="string"></property><many-to-one name="entity" column="entity_id"class="com.wxl.app.domain.Entity"></many-to-one><many-to-one name="type" column="type_id"class="com.wxl.app.domain.FieldType"></many-to-one></class></hibernate-mapping>