Hibernate 自定义id

代码如下:

    实体类


package com.zking.entity;

import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.id.IdentifierGenerator;

public class text implements IdentifierGenerator {

	@Override
	public Serializable generate(SharedSessionContractImplementor session, Object object) throws HibernateException {
		Connection con = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		List<diqiu> ld = new ArrayList<>();
		String str = null;
		try {
			con = session.connection();
			ps = con.prepareStatement(" select did,dname from diqiu ");
			rs = ps.executeQuery();
			while (rs.next()) {
				diqiu d = new diqiu(
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hibernate 支持使用自定义注解来实现实体类和数据库表之间的映射关系。您可以使用 `@javax.persistence.Table` 注解来指定实体类与数据库表之间的映射关系,使用 `@javax.persistence.Column` 注解来指定实体类属性与数据库列之间的映射关系。 例如,如果您想要将一个名为 `Person` 的实体类映射到一个名为 `person_info` 的数据库表上,您可以使用以下注解: ```java @Entity @Table(name = "person_info") public class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "full_name") private String fullName; @Column(name = "age") private int age; // 省略 getter 和 setter 方法 } ``` 在上面的例子中,`@Table(name = "person_info")` 注解指定了 `Person` 实体类与 `person_info` 数据库表之间的映射关系,`@Column(name = "full_name")` 注解指定了 `fullName` 属性与 `full_name` 数据库列之间的映射关系,`@Column(name = "age")` 注解指定了 `age` 属性与 `age` 数据库列之间的映射关系。 您也可以自定义自己的注解来简化实体类的编写工作。例如: ```java @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface EntityMapping { String tableName(); String[] columnNames(); } ``` 上面的代码定义了一个 `@EntityMapping` 注解,用于指定实体类的映射关系。您可以将这个注解应用到实体类上,如下所示: ```java @Entity @EntityMapping(tableName = "person_info", columnNames = {"full_name", "age"}) public class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String fullName; private int age; // 省略 getter 和 setter 方法 } ``` 在上面的例子中,`@EntityMapping(tableName = "person_info", columnNames = {"full_name", "age"})` 注解指定了 `Person` 实体类与 `person_info` 数据库表之间的映射关系,以及 `fullName` 和 `age` 属性与数据库表中的哪些列之间的映射关系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值