Hibernate操作视图
来源:互联网 发布:excel查找同列重复数据 编辑:程序博客网 时间:2024/05/16 07:38
映射视图与表不同,会多生成XXXId的类,配置文件一般是联合主键 如:
既然 视图就是表,那么在写类和映射文件的时候,无需有什么特别的地方,按照正常写就可以了,
只是主键需要处理一下,如上如果复合主键中有一个值为NULL,则 from view查询出来的集合中都是
NULL值.此时可以采用如下配置文件方式:
此处保证id为表中唯一字段,并且不为null。
所以在用Hibernate对视图进行操作的时候应该注意:要确定好复合主键的个数,如果将所有字段
都作为复合主键.当一个为NULL时候,from view查询出来的集合中都是NULL值.其他操作类似Hibernate
对表的操作。
联合主键不为NULL时,可以这样做:
public class AllTablePb implements Serializable {
// Fields
private AllTablePbId id; //**********生成id的getter,setter方法
// Property accessors
public AllTablePbId getId() {
return this.id;
}
public void setId(AllTablePbId id) {
this.id = id;
}
}
public class AllTablePbId implements java.io.Serializable {
// Fields
private String owner;
private String tableName;
private String columnName;
private String dataType;
private String pbcCnam;
private String pbcCmnt;
// Property accessors
public String getOwner() {
return this.owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public String getTableName() {
return this.tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public String getColumnName() {
return this.columnName;
}
public void setColumnName(String columnName) {
this.columnName = columnName;
}
public String getDataType() {
return this.dataType;
}
public void setDataType(String dataType) {
this.dataType = dataType;
}
public String getPbcCnam() {
return this.pbcCnam;
}
public void setPbcCnam(String pbcCnam) {
this.pbcCnam = pbcCnam;
}
public String getPbcCmnt() {
return this.pbcCmnt;
}
public void setPbcCmnt(String pbcCmnt) {
this.pbcCmnt = pbcCmnt;
}
}
配置文件:
<hibernate-mapping>
<class name="com.hhkj.workflow.bean.AllTablePb" table="V_ALLTAB_PB" schema="CANP">
<composite-id name="id" class="com.hhkj.workflow.bean.AllTablePbId">
<key-property name="owner" type="string">
<column name="OWNER" length="30" />
</key-property>
<key-property name="tableName" type="string">
<column name="TABLE_NAME" length="30" />
</key-property>
<key-property name="columnName" type="string">
<column name="COLUMN_NAME" length="30" />
</key-property>
<key-property name="dataType" type="string">
<column name="DATA_TYPE" length="106" />
</key-property>
<key-property name="pbcCnam" type="string">
<column name="PBC_CNAM" length="30" />
</key-property>
<key-property name="pbcCmnt" type="string">
<column name="PBC_CMNT" length="254" />
</key-property>
</composite-id>
</class>
</hibernate-mapping>
这样就可以通过AllTablePb.getId()取得相关的信息。
- <hibernate-mapping>
- <class name="com.hhkj.workflow.bean.AllTablePb" table="V_ALLTAB_PB" schema="CANP">
- <composite-id name="id" class="com.hhkj.workflow.bean.AllTablePbId">
- <key-property name="owner" type="string">
- <column name="OWNER" length="30" />
- </key-property>
- <key-property name="tableName" type="string">
- <column name="TABLE_NAME" length="30" />
- </key-property>
- <key-property name="columnName" type="string">
- <column name="COLUMN_NAME" length="30" />
- </key-property>
- </composite-id>
- </class>
- </hibernate-mapping>
既然 视图就是表,那么在写类和映射文件的时候,无需有什么特别的地方,按照正常写就可以了,
只是主键需要处理一下,如上如果复合主键中有一个值为NULL,则 from view查询出来的集合中都是
NULL值.此时可以采用如下配置文件方式:
- <hibernate-mapping>
- <class name="com.hhkj.workflow.bean.AllTablePbId" table="V_ALLTAB_PB">
- <id name="id" type="java.lang.String" column="ID" length="50" >
- <generator class="assigned"></generator>
- </id>
- <property name="OWNER" type="java.util.Date">
- <column name="OWNER" length="30" />
- </property>
- <property name="TABLE_NAME" type="java.lang.String">
- <column name="TABLE_NAME" length="30" />
- </property>
- <property name="COLUMN_NAME" type="java.lang.String">
- <column name="COLUMN_NAME" length="30" />
- </property>
- </class>
- </hibernate-mapping>
此处保证id为表中唯一字段,并且不为null。
所以在用Hibernate对视图进行操作的时候应该注意:要确定好复合主键的个数,如果将所有字段
都作为复合主键.当一个为NULL时候,from view查询出来的集合中都是NULL值.其他操作类似Hibernate
对表的操作。
联合主键不为NULL时,可以这样做:
public class AllTablePb implements Serializable {
// Fields
private AllTablePbId id; //**********生成id的getter,setter方法
// Property accessors
public AllTablePbId getId() {
return this.id;
}
public void setId(AllTablePbId id) {
this.id = id;
}
}
public class AllTablePbId implements java.io.Serializable {
// Fields
private String owner;
private String tableName;
private String columnName;
private String dataType;
private String pbcCnam;
private String pbcCmnt;
// Property accessors
public String getOwner() {
return this.owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public String getTableName() {
return this.tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public String getColumnName() {
return this.columnName;
}
public void setColumnName(String columnName) {
this.columnName = columnName;
}
public String getDataType() {
return this.dataType;
}
public void setDataType(String dataType) {
this.dataType = dataType;
}
public String getPbcCnam() {
return this.pbcCnam;
}
public void setPbcCnam(String pbcCnam) {
this.pbcCnam = pbcCnam;
}
public String getPbcCmnt() {
return this.pbcCmnt;
}
public void setPbcCmnt(String pbcCmnt) {
this.pbcCmnt = pbcCmnt;
}
}
配置文件:
<hibernate-mapping>
<class name="com.hhkj.workflow.bean.AllTablePb" table="V_ALLTAB_PB" schema="CANP">
<composite-id name="id" class="com.hhkj.workflow.bean.AllTablePbId">
<key-property name="owner" type="string">
<column name="OWNER" length="30" />
</key-property>
<key-property name="tableName" type="string">
<column name="TABLE_NAME" length="30" />
</key-property>
<key-property name="columnName" type="string">
<column name="COLUMN_NAME" length="30" />
</key-property>
<key-property name="dataType" type="string">
<column name="DATA_TYPE" length="106" />
</key-property>
<key-property name="pbcCnam" type="string">
<column name="PBC_CNAM" length="30" />
</key-property>
<key-property name="pbcCmnt" type="string">
<column name="PBC_CMNT" length="254" />
</key-property>
</composite-id>
</class>
</hibernate-mapping>
这样就可以通过AllTablePb.getId()取得相关的信息。
- Hibernate操作视图实例
- Hibernate操作视图
- Hibernate操作MySQL视图
- hibernate 操作sql2005视图
- hibernate操作视图
- Hibernate 操作视图
- HIBERNATE对视图的操作
- Hibernate对视图的操作
- hibernate操作视图的问题
- Hibernate操作视图实例(转)
- 关于hibernate对视图的操作的一点心得
- 视图操作
- 视图操作
- hibernate 映射视图
- Hibernate查询视图数据
- hibernate视图映射
- hibernate视图映射
- hibernate 视图映射
- VisualStudio2008环境下,用C#语言写三个方法实现发邮件功能
- 了解 JavaFX Script 编程语言 --第 2 课:编写脚本
- web.xml配置详解
- javascript特效-3
- 实现GIS互操作的技术
- Hibernate操作视图
- SVN Eclipse插件Subclipse安装和配置
- Multipart Internet Mail Extensions (MIME) Content-Type
- Log4j配置
- 利用Radrails开发Ruby on Rails程序入门指南
- 关于jsp的文件里的编码设置
- OpenGL入门学习----数据传输方式
- Middlegen-Hibernate-r5简单使用
- 打开一个对话框时,跳出消息:an unsupported operation was attempted