主键类如下:
package net.kong.wolf.stat.db.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Embeddable
public class HourDataPK implements Serializable {
/** *//**
*
*/
private static final long serialVersionUID = 1L;
@ManyToOne
@JoinColumn(name = "path_id", nullable = false)
private Path path;
@Column(name = "stat_date")
@Temporal(TemporalType.DATE)
private Date statDate;
public Path getPath() {
return path;
}
public void setPath(Path path) {
this.path = path;
}
public Date getStatDate() {
return statDate;
}
public void setStatDate(Date statDate) {
this.statDate = statDate;
}
}实体类如下:
package net.kong.wolf.stat.db.entity;
import java.io.Serializable;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import net.kong.wolf.stat.core.Text;
@Entity
@Table(name = "TB_HOUR_DATA")
public class HourData implements Serializable {
/** *//**
*
*/
private static final long serialVersionUID = 1L;
@EmbeddedId
private HourDataPK pk;
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public int[] getHours() {
return parseValue(value);
}
private int[] parseValue(String value) {
int[] result = new int[24];
for (int i = 0; i < 24; i++) {
result[i] = -1;
}
if (value == null) {
return result;
}
String[] hs = Text.splitCSV(value);
int len = Math.min(24, hs.length);
for (int i = 0; i < len; i++) {
result[i] = Text.parseInt(hs[i], -1);
}
return result;
}
public void setHours(int[] hours) {
int[] tHours = parseValue(value);
StringBuilder sb = new StringBuilder();
int len = Math.min(24, hours.length);
for (int i = 0; i < len; i++) {
sb.append(hours[i] < 0 ? tHours[i] : hours[i]).append(',');
}
sb.deleteCharAt(sb.length() - 1);
this.value = sb.toString();
}
public HourDataPK getPk() {
return pk;
}
public void setPk(HourDataPK pk) {
this.pk = pk;
}
}我想再建一个实体类,其中的一个属性path_id 外键关联HourData 表,要怎么加条件呢,下面这种就会提示错误。需要加两个键
package net.kong.wolf.stat.db.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Embeddable
public class Test implements Serializable {
/** *//**
*
*/
private static final long serialVersionUID = 1L;
@ManyToOne
@JoinColumn(name = "path_id", nullable = false)
private HourData hD;
}
package net.kong.wolf.stat.db.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Embeddable
public class HourDataPK implements Serializable {
/** *//**
*
*/
private static final long serialVersionUID = 1L;
@ManyToOne
@JoinColumn(name = "path_id", nullable = false)
private Path path;
@Column(name = "stat_date")
@Temporal(TemporalType.DATE)
private Date statDate;
public Path getPath() {
return path;
}
public void setPath(Path path) {
this.path = path;
}
public Date getStatDate() {
return statDate;
}
public void setStatDate(Date statDate) {
this.statDate = statDate;
}
}实体类如下:
package net.kong.wolf.stat.db.entity;
import java.io.Serializable;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import net.kong.wolf.stat.core.Text;
@Entity
@Table(name = "TB_HOUR_DATA")
public class HourData implements Serializable {
/** *//**
*
*/
private static final long serialVersionUID = 1L;
@EmbeddedId
private HourDataPK pk;
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public int[] getHours() {
return parseValue(value);
}
private int[] parseValue(String value) {
int[] result = new int[24];
for (int i = 0; i < 24; i++) {
result[i] = -1;
}
if (value == null) {
return result;
}
String[] hs = Text.splitCSV(value);
int len = Math.min(24, hs.length);
for (int i = 0; i < len; i++) {
result[i] = Text.parseInt(hs[i], -1);
}
return result;
}
public void setHours(int[] hours) {
int[] tHours = parseValue(value);
StringBuilder sb = new StringBuilder();
int len = Math.min(24, hours.length);
for (int i = 0; i < len; i++) {
sb.append(hours[i] < 0 ? tHours[i] : hours[i]).append(',');
}
sb.deleteCharAt(sb.length() - 1);
this.value = sb.toString();
}
public HourDataPK getPk() {
return pk;
}
public void setPk(HourDataPK pk) {
this.pk = pk;
}
}我想再建一个实体类,其中的一个属性path_id 外键关联HourData 表,要怎么加条件呢,下面这种就会提示错误。需要加两个键
package net.kong.wolf.stat.db.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Embeddable
public class Test implements Serializable {
/** *//**
*
*/
private static final long serialVersionUID = 1L;
@ManyToOne
@JoinColumn(name = "path_id", nullable = false)
private HourData hD;
}
解决方案 »
- SSH使用oracle配置问题
- socket问题
- 求CMS系统例子程序
- qingwen
- 讨论apache httpd.conf 和 tomcat server.xml 整合后的配置
- 关于Hibernate 急等
- JAVA MAIL附件替换正文问题
- 下载时出现的问题 getOutputStream() has already been called for this response
- 关于maven elcipse tomcat配置问题
- hibernate生成的sql语句oracle无法识别
- bat给main方法传参日文乱码问题
- [Hibernet+ehcache]每次查询后都提示缓存过期,然后执行update
import javax.persistence.Entity;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;@Entity
public class Husband {
private int id;
private String name;
private Wife wife; @Id
@GeneratedValue
public int getId() {
return id;
}public void setId(int id) {
this.id = id;
}public String getName() {
return name;
}public void setName(String name) {
this.name = name;
}@Embedded
public Wife getWife() {
return wife;
}public void setWife(Wife wife) {
this.wife = wife;
}
}
/hibernate_001/src/com/myj/hibernate/model/Wife.javapackage com.myj.hibernate.model;public class Wife {
private String wifeName;public String getWifeName() {
return wifeName;
}public void setWifeName(String wifeName) {
this.wifeName = wifeName;
}}
/hibernate_001/src/hibernate.cfg.xml<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory> <!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>
<!--
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="connection.username">scott</property>
<property name="connection.password">tiger</property>-->
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property> <!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> --> <!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<property name="format_sql">true</property> <!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create</property> <mapping class="com.myj.hibernate.model.Husband" />
</session-factory></hibernate-configuration>/hibernate_001/test/com/myj/hibernate/model/HibernateORMMappingTest.javapackage com.myj.hibernate.model;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Test;
public class HibernateORMMappingTest {
@Test
public void testSchemaExport() {
new SchemaExport(new AnnotationConfiguration().configure()).create(true, true);
}}
http://hi.baidu.com/martian_ma/blog/item/ca053ede24286a1848540330.html