hibernate 实体类| 耗时:0.24秒|35011条结果

Hibernate实体类的操作

(); u.setUid(1); session.delete(u); saveOrUpdate()方法的使用 此方法根据实体类的状态选择添加或修改 //1. 瞬时态,添加 User uu = new User(); uu.setUsername("jack"
http://www.itnose.net/detail/6721337.html 2017-02-19 17:15   [Hibernate]

Hibernate注解-实体类注解

@Entity @Table(name = "EMP", schema = "SCOTT") public class Emp implements java.io.Serializable { // Fields private Short empno; private Dept dept; private String ename; private String job; private Short mgr; private Date hiredate; private Double sal; private Double comm; // Constructors /** default constructor */ public Emp() { } /** full constructor */ public Emp(Dept dept, String ename, String job, Short mgr, Date hiredate, Double sal, Double comm) { this.dept = dept; this.ename = ename; this.job = job; this.mgr = mgr; this.hiredate = hiredate; this.sal = sal; this.comm = comm; } // Property accessors @Id @GeneratedValue @Column(name = "EMPNO", unique = true, nullable = false, precision = 4, scale = 0) public Short getEmpno() { return this.empno; } public void setEmpno(Short empno) { this.empno = empno; } @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "DEPTNO") public Dept getDept() { return this.dept; } public void setDept(Dept dept) { this.dept = dept; } @Column(name = "ENAME", length = 10) public String getEname() { return this.ename; } public void setEname(String ename) { this.ename = ename; } @Column(name = "JOB", length = 9) public String getJob() { return this.job; } public void setJob(String job) { this.job = job; } @Column(name = "MGR", precision = 4, scale = 0) public Short getMgr() { return this.mgr; } public void setMgr(Short mgr) { this.mgr = mgr; } @Temporal(TemporalType.DATE) @Column(name = "HIREDATE", length = 7) public Date getHiredate() { return this.hiredate; } public void setHiredate(Date hiredate) { this.hiredate = hiredate; } @Column(name = "SAL", precision = 7) public Double getSal() { return this.sal; } public void setSal(Double sal) { this.sal = sal; } @Column(name = "COMM", precision = 7) public Double getComm() { return this.comm; } public void setComm(Double comm) { this.comm = comm; } } 上方的2个注解 @Entity标志这个实体 @Table中name属性值为数据库表名, schema属性值就是数据库用户名,默认为"",可以不写,一般来说,写这2个属性就够了.其他不介绍. 属性注解最好写在get方法上方: 1.@id表示这个是OID属性,对应着数据库的主键,注意OID必须为long,int或者short. 2.@GenerateValue 中有2个属性,strategy表示主键生成策略,默认值为StrategyType.AUTO(另外3个值为:IDENTITY,SEQUENCE,TABLE) 其中AUTO表示hibernate自动选择 IDENTITY表示根据底层数据库生成,支持mysql,db2,sqlserver,sybase等数据库 SEQUENCE也由底层数据库生成,支持oracle,db2,postgresql TABLE表示根据另外的表生成 3.@Column可以配置实体属性与数据库表字段的对应关系 name属性值为表字段名 unique 是否唯一 nullable 是否可以为null precision 有效位数 scale  小数位数 length 数据长度 insertable 该字段是否可以插入到数据库表中 updateable 该字段是否可以更新 columnDefinition 设置对应的表字段的数据类型,不常用 4.@Temporal它只有一个value属性,所以这个value可以省略,它的值时枚举值TemporalType TemporalType.DATE  日期 精确到年月日,例如"2015-11-04" TemporalType.TIME  时间 精确到时分秒,例如"20:00:00" TemporalType.TIMESTAMP 日期时间 精确到年月日时分秒,例如"2015-11-04 20:00:00" @BLob @Clob 5.@Version 版本标志 6.@Transient 表示这个属性时游离的,不会持久化到数据库中 6.@ManyToOne 先占好坑,下次再详细写 7.@JoinColumn 8.@OneToMany 9.@ManyToMany 10.@OneToOne 单独写出来: 联合主键配置,这里随便选了一种实现方法,说实话hibernate的联合主键配置确实麻烦,还不如mybatis.这种是myeclipse自动生成的第一个@Embeddablepublic class BonusId implements java.io.Serializable {     private String ename;private String job;private BigDecimal sal;private BigDecimal comm;...}第二个@Entity@Table(name = "BONUS", schema = "SCOTT")public class Bonus implements java.io.Serializable {  private BonusId id;@EmbeddedId@AttributeOverrides({@AttributeOverride(name = "ename", column = @Column(name = "ENAME", length = 10)),@AttributeOverride(name = "job", column = @Column(name = "JOB", length = 9)),@AttributeOverride(name = "sal", column = @Column(name = "SAL", precision = 22, scale = 0)),@AttributeOverride(name = "comm", column = @Column(name = "COMM", precision = 22, scale = 0)) })public BonusId getId() {return this.id;}public void setId(BonusId id) {this.id = id;}} Sequence主键生成策略,这个有点复杂首先先建好序列seq_studentclass为@Entity@SequenceGenerator(name="seq_t_student" sequenceName='seq_student')@Table(name="student" schma=""public class Student{private long id; private void setId(long id){  this.id=id; } @Id @GeneratedValue(strategy=Generation.SEQUENCE,generator="seq_t_student") @Column(name="ID",length=40,nullable=false,unique=true) public long getId(){  return this.id } }
http://www.itnose.net/detail/6402280.html 2015-11-06 04:50   [Hibernate]

关于hibernate一个实体类对应多个表的问题

老师的项目要求用hibernate来管理数据库,但是数据库中一共有600多张表,让我一个一个的建立表所对应的实体类有些不太现实,但是我初学hibernate,没能找到好的方法。 在hibernate3中,我想要建立这样的一个实体类,在不同的情况下可以对应不同的表,不知道这样可行不?如果可行,请教我如何操作,如果实现不了的话,请告诉我有什么好的方法可以避免建立600多个实体类才能实现查询。谢谢。 回复讨论(解决方案) 这个好像没法避免吧!Hibernate实体是和数据库表一一对应的,如果数据库已经存在表了,可以使用IDE自动生成实体类的。 1.在IDE中创建数据库连接。 2.通过数据源选择数据库、表,然后反向生成实体类。 详细的操作百度吧。 也用不着一次都把映射关系做好吧,用到一张表的时候去建映射关系 确实没什么好办法 可以实现 实体表  一对多。这样不科学呀,表结构一样,你还得一点点看表结构,然后再分类,用的时候,要是同时用到2个一样结构的表,你怎么封装实体呢? 逆向生成,通过表生成实体类对象和hbm文件,通过myeclipse集成的hibernate去操作,详细百度。理论上和表是一一对应的 一对多,这不科学。因为如果存在一对多的话,这表设计就不合理了,那就会出现大量冗余数据! 请使用hibernate反向工程...话说我习惯先设计数据库表,实体类从来就没自己敲过代码...最多改改 你用到自己用到什么就写什么实体类,面向对象的去思考,不要管它多少张表了,我写了这么久的代码表还没上过50.. 问下,你的问题解决了吗
http://www.itnose.net/detail/6005296.html 2014-03-05 17:36   [J2EE]

关于hibernate逆向生成实体类的问题

   小弟最近在做一个web项目,数据库时sql sever2005  我用myEclipse自带的hibernate工具 从表生成实体类的时候,为什么一个表生成了两个实体类?那我hql查询的时候应该是查哪个对象呢? 例如
http://www.itnose.net/detail/731443.html 2014-02-20 01:59   [JavaWeb]

关于hibernate实体类注解

常用的hibernate annotation标签如下: @Entity              --注释声明该类为持久。将一个Javabean声明为一 个实体的数据库表
http://www.itnose.net/detail/531467.html 2014-02-08 13:36   [Hibernate]

hibernate反向生成实体类

。 步骤二: 选中项目右键 -->MyEclipse-->add Hibernate Capabilities 这里我们选择hibernate3.2然后如果需要用到在实体类 上添加注释的话那么选中紧挨着的Enable Hibernate Annotations Support
http://www.itnose.net/detail/523414.html 2014-02-06 12:39   [Hibernate]

myeclipse反向生成hibernate实体类

  第二步: 新建一个WEB项目 然后选中项目右键-->MyEclipse-->add Hibernate Capabilities 如果需要用到在实体类上添加注释的话那么选中紧挨着的add Hibernate Annotations Support(据说现在都用
http://www.itnose.net/detail/519650.html 2014-02-06 10:23   [JavaEclipse]

Hibernate实体类注解的问题

刚刚和八千哥弄一个问题,这个很诡异的问题,困扰了我这么长时间。哎,说来惭愧。 用三大框架写毕设,结果今天获取前台数的时候,发现传值有个传不到。 我一开始用的是名为cows的数据,后来换了个数据库,加了一些字段,库名取为mycows。 问题从此开始了,cows中有一段从1到16的数据,在mycows中是从1到18。但是程序无论如何都是取到的从1到16的,经过测试发现,问题在用hibernate取值的话,就会是从cows数据库取值。用jdbc写,则是正确的mycows中取值。 我们用了各种方式,查配置文件,查路径,甚至重启数据库,弄了半天,好吧,要放弃了。 最后的一下,看了一下实体类。因为是注解
http://www.itnose.net/detail/470892.html 2014-01-21 18:23   [J2SE]

Hibernate中 怎样获取 实体类

我在程序中想用hibernate得到我写过的所有实体类的名,在前台做一个下拉框显示,怎样才能获得实体类的名,比如 我写了Student,Teacher,School 这3个 我想在前台下拉框里显示   麻烦各位大神帮帮忙 谢谢
http://www.itnose.net/detail/362219.html 2014-01-03-12:52   [J2EE]

hibernate实体类配置文件

:1635) at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1603) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1582) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1556) at org.hibernate.cfg.Configuration.configure(Configuration.java:1476) at org.hibernate.cfg.Configuration.configure(Configuration.java:1462) at util.HibernateUtil.<clinit>(HibernateUtil.java:13) at inherit_tph.ComputerService.find(ComputerService.java:117) at inherit_tph.Test.main(Test.java:47) Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from invalid mapping at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:549) at org.hibernate.cfg.Configuration.addResource(Configuration.java:613) ... 9 more Caused by: org.xml.sax.SAXParseException: The content of element type "class" must match "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,resultset*,(query|sql-query)*)". 上面提示class不匹配,但是我实在找不出哪里出问题了,各位帮忙看看! 回复讨论(解决方案) 把Computer的代码贴出来看看,答案就有了 这样写至少不会出编译的错误了,逻辑上的问题没给你调 import java.util.*; import java.io.*; public class Employ { /**  * 主函数  *   * @param args  * @throws IOException  */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub EmployM employm = new EmployM();// 此处显示错误????为什么呀????????? BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while (true) { System.out.println("请输入你的选择:"); System.out.println("1添加雇员:"); System.out.println("2删除雇员:"); System.out.println("3查询雇员:"); System.out.println("4修改工资:"); String operType = br.readLine(); if (operType.equals("1")) { System.out.println("请输入编号:"); String id = br.readLine(); System.out.println("请输入名字:"); String name = br.readLine(); System.out.println("请输入性别:"); String age = br.readLine(); System.out.println("请输入工资:"); float sal = Float.parseFloat(br.readLine()); Emp emp = new Emp(id, name, age, sal);// 此处显示错误????为什么呀????????? employm.addEmp(emp); } else if (operType.equals("2")) { String id = br.readLine(); employm.deleteEmp(id); } else if (operType.equals("3")) { String id = br.readLine(); employm.showEmp(id); } else if (operType.equals("4")) { String id = br.readLine(); float sal = Float.parseFloat(br.readLine()); employm.updateEmp(id, sal); } else if (operType.equals("5")) { System.exit(-1); } } } } /**  * 职工信息定义  * Emp是个内部类  * @author Yu  *   */ class Emp { private String name; private String age; private float sal; private String id; public Emp(String id, String name, String age, float sal) { this.age = age; this.id = id; this.sal = sal; this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public float getSal() { return sal; } public void setSal(float sal) { this.sal = sal; } public String getId() { return id; } public void setId(String id) { this.id = id; } } /**  * 职工信息管理  * EmployM也是个内部类  * @author Yu  *   */ class EmployM { ArrayList a = null; public EmployM() { a = new ArrayList(); } // 增加一个职工 public void addEmp(Emp emp) { a.add(emp); } // 查询 public void showEmp(String id) { for (int i = 0; i < a.size(); i++) { Emp emp = (Emp) a.get(i); if (emp.getId().equals(id)) { System.out.println("查询的员工名字是" + emp.getName()); System.out.println("工资" + emp.getSal()); System.out.println("年龄" + emp.getAge()); System.out.println("性别" + emp.getId()); } } } // 删除 public void deleteEmp(String id) { for (int i = 0; i < a.size(); i++) { Emp emp = (Emp) a.get(i); if (emp.getId().equals(id)) { a.remove(i); a.remove(emp); } } } // 更新 public void updateEmp(String id, float newsal) { for (int i = 0; i < a.size(); i++) { Emp emp = (Emp) a.get(i); if (emp.getId().equals(id)) { emp.setSal(newsal); } } } } 不好意思,发错帖子了,请无视 这样写至少不会出编译的错误了,逻辑上的问题没给你调 Java code import java.util.*; import java.io.*; public class Employ {          /**      * 主函数      *       * @param args      * @throws IOException      */     public st…… 把Computer的代码贴出来看看,答案就有了 package inherit_tph; /**  *   * @author Administrator  *  */ public abstract class Computer { private int id; private double price; private String manufactory; public int getId() { return id; } public void setId(int id) { this.id = id; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getManufactory() { return manufactory; } public void setManufactory(String manufactory) { this.manufactory = manufactory; } } 我还是第一次看到用抽象映射hibernate,我很怀疑是不是这个问题引发的异常 引用 1 楼 ioe_gaoyong 的回复: 把Computer的代码贴出来看看,答案就有了 package inherit_tph; /**  *   * @author Administrator  *  */ public abstract class Computer { private int id; private double price; pri…… 而且你的映射文件写的确实有问题,大小写啥的都需要更改,待会弄好了给你贴一份能行的 将Computer变成非抽象进行映射,代码如下 public class Computer { private int id; private double price; private String manufactory; //需要空的构造函数 public Computer(){} public int getId() { return id; } public void setId(int id) { this.id = id; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getManufactory() { return manufactory; } public void setManufactory(String manufactory) { this.manufactory = manufactory; } } 对应映射的hbm.xml文件如下 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping>   <class name="Computer" table="computer">     <id column="id" name="id">       <generator class="native"/>     </id>     <property column="price" name="price" type="java.lang.Double"/>     <property column="manufactory" name="manufactory" type="java.lang.String"/>   </class> </hibernate-mapping> 将Computer变成非抽象进行映射,代码如下 Java code public class Computer {     private int id;     private double price;     private String manufactory;          //需要空的构造函数     public Computer(){}       …… 谢谢了,我是刚开始学习hibernate,问题已经解决了,问题不是出在抽象上,主要原因是discriminator标签必须在id标签之后,也不知道为什么,反正解决了,再次感谢 印象中hibernate里面的配置文件要求 自增主键的id一定要出现在其他映射的最前面 那你的意思是用抽象也可以进行映射了,你现在采用的映射什么样子,能交流下么? 引用 7 楼 ioe_gaoyong 的回复: 将Computer变成非抽象进行映射,代码如下 Java code public class Computer { private int id; private double price; private String manufactory; //需要空的构造函数 public Computer(){} …… …… 印象中hibernate里面的配置文件要求 自增主键的id一定要出现在其他映射的最前面 那你的意思是用抽象也可以进行映射了,你现在采用的映射什么样子,能交流下么? <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC  "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="inherit_tph"> <class name="Computer" table="computer_tph"> <id name="id" column="id" type="integer"> <generator class="native"/> </id> <discriminator column="types" type="string"></discriminator> <property name="manufactory" column="manufactory" type="string"></property> <property name="price" column="price" type="double"></property> <subclass name="Notepad" discriminator-value="n"> <property name="weight" column="weight" type="double"></property> <property name="thickness" column="thickness" type="double"></property> </subclass> <subclass name="Desktop" discriminator-value="d"> <property name="LCD" column="islcd" type="yes_no"></property> </subclass> </class> </hibernate-mapping> discriminator标签必须跟在id标签之后,否则会报出class标签不匹配
http://www.itnose.net/detail/183832.html 2014-01-01-12:45   [JavaEclipse]

Hibernate反转表的问题 一个关联表翻转后有实体类是xxxId 但是老师

Hibernate反转表的问题 一个关联表反转后实体类是xxxId 但是老师的就没有这个实体类? 就是很简单的 tb_role tb_user tb_user_role tb_role(roleid,rolename ) roleid 是主键 tb_user(userid,username)  userid 是主键 tb_user_role(roleid,userid) 联合主键 tb_user_role 中有两个外键 分别关联到 tb_role中的roleid tb_user中的userid 我记得老师的反转后 就是 TbRole TbUser 两个实体对象  TbRole中有Set tbUsers这样的字段 TbUser也有Set tbRoles这样的字段 当时自己弄得好像也是这样, 怎么现在再反转, 变成那个4个实体对象了 TbUser TbRole TbUserRole TbUserRoleId 我的tb_user_role 中除了关联的字段又没有别的字段了 , 没有必要生成这样的联合主键啊, 他们只起到关联作用啊? 难道是我的SQL语句有问题? create table TB_USER (USERID number(10,0) not null, USERNAME varchar2(64 char), PASSWORD varchar2(64 char), primary key (USERID)) create table TB_ROLE (ROLEID number(10,0) not null, ROLENAME varchar2(32 char), primary key (ROLEID)) create table TB_USER_ROLE (USERID number(10,0) not null, ROLEID number(10,0) not null, primary key (ROLEID, USERID)) alter table TB_USER_ROLE add constraint FK4C9847D95DF7A1DF foreign key (ROLEID) references TB_ROLE alter table TB_USER_ROLE add constraint FK4C9847D9634CF749 foreign key (USERID) references TB_USER 回复讨论(解决方案) 难道是你和你的老师用的IDE不同? 饿, 想起来了, wangqigou忘记勾选 enable many to many detection 了。 哎, 笔记记的乱七八糟的, 以后真是得好好改改了。
http://www.itnose.net/detail/864514.html 2014-02-22 01:34   [J2EE]

求助:hibernate查询返回实体类中的实体类对象值为nul

实体类A包含B对象[B也是实体类] 在dao层进行数据操作的时候,B对象的数据都读取成功并可以进行操作,单当返回给service层的时候,A的一些String、int类型的数据还在,B对象里的值都却变成了null,为什么? 回复讨论(解决方案) hibernate的延迟加载机制导致的
http://www.itnose.net/detail/33321.html 2013-12-31-15:12   [J2EE]

Hibernate解决实体类不方便的方案

前言 众所周知,Java的面向对象的机制太过强,而大家在做数据库查询时几乎都是清一色的使用实体类的List接收查询结果集,但是如果使用原生语句进行查询的时候,在使用别名、联表或者其中有聚合函数时会出一些问题,可能就再需要写实体类,再手动关联临时表。 举个栗子 比如说我要查询表中class_name
http://www.itnose.net/detail/6717418.html 2017-02-14 17:51   [Hibernate]

Hibernate】--实体类映射到数据库表

;   然后,开始建立实体类,其包括5个属性: package com.bjpowernode.hibernate; import java.util.Date; public class User { private String id; private String name
http://www.itnose.net/detail/6704595.html 2016-12-30 12:39   [Hibernate]

  1  2  3  4  5 下一页>