【java-jpa一对多复合主键映射】教程文章相关的互联网学习教程文章

java – Hibernate:由于一对一关系而导致主键生成不一致【代码】

我在一个名为“MailAccount”的类和“IncomingServer”和“OutgoingServer”类之间有两个一对一的关系. (它是在Tomcat和Ubuntu服务器版上运行的Java应用程序). 映射看起来像这样: MailAccount.hbm.xml<hibernate-mapping package="com.mail.account"><class name="MailAccount" table="MAILACCOUNTS" dynamic-update="true"><id name="id" column="MAIL_ACCOUNT_ID"><generator class="native" /></id><one-to-one name="incoming...

java – 没有主键的表的Hibernate映射【代码】

我知道之前已经问过这个问题,但我也有一个设计问题. 有两个表是这样的:Table Group_table column pk_Group_name column group_type etcTable Group_members column fk_group_name -> foreign key to group_table column group_member使用这种结构很容易,但我有两个问题.首先,我应该如何在Hibernate映射中映射group_members? Hibernate想要某种类型的id,我不知道该怎么说. 第二,虽然我可能先问一下,这个糟糕的数据库设计是不是? ...

java – 实体的Spring Data Repository,其中外键也是主键【代码】

我在使用JPA2(EclipseLink)和Spring Data 1.4.2时遇到了一些问题.在我的例子中,两个表具有一对一的关系: 表A: > aId(PK)> …… 表B: > bId(PK,FK – 映射到TableA中的aId)> …… 所以我试着做这个实体: EntityA:@Entity @Table(name = "TableA") public class EntityA implements Serializable {@Id@GeneratedValue@Column(name = "aId")private Long id;// another fields and getter/setter/business methods... }EntityB...

java – 需要Hibernate中主键@OneToOne映射的示例【代码】

有人可以给我一个Hibernate中单向@OneToOne主键映射的例子吗?我尝试了很多种组合,到目前为止,我得到的最好的东西是:@Entity @Table(name = "paper_cheque_stop_metadata") @org.hibernate.annotations.Entity(mutable = false) public class PaperChequeStopMetadata implements Serializable, SecurityEventAware {private static final long serialVersionUID = 1L;@Id @JoinColumn(name = "paper_cheque_id") @OneToOne(casca...

Java开发中同一个对象中多次以同一个对象的主键作为属性的@JoinColumn注解

Java开发过程中,常常会遇到一个对象中多次用到另一个对象的主键作为属性的情况。比如记录一个人的部门变化情况,需要同时记录变更前后的部门编号。之前有误区,以为在这种情况下的@JoinColumn属性必须是实体类的主键,而实际上这个注解的属性值是当前实体类的外键。举例如下: 首选创建Department实体类@Entity @Table(name="department") public class Department implements Serializable{private static final long serialVers...

Java获取MongoDB自动生成的主键字段_id的值【代码】【图】

MongoDB每条文档会有一个叫 _id的字段,这个相当于我们原来关系数据库中表的主键,当你在插入文档记录时没有指定该字段,MongoDB会自动创建,其类型是ObjectID或String类型。 在Java对象类中,使用@Id注解可以将属性对应到MongoDB数据库中自动生成的主键字段_id。 比如下面这个例子,自动生成的_id将注入到对象中加了@Id注解的uid属性中。 1 package cn.zzz.domain;2 3 import org.springframework.data.annotation.Id;4 import or...

Mybatis-plus 数据库自增主键为int 类型对应Java类类型为Integer 报错问题【代码】

报错信息org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property id of class com.jpgk.entity.report.OrgWarehouseGoods with value 1247386398982488065 Cause: java.lang.IllegalArgumentException: argument type mismatchat org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.ja...

Java_jdbc 基础笔记之十五 数据库连接(取得数据库自动生成的主键)【代码】

public class testGetKeyValue {/*** 取得数据库自动生成的主键*/@Testpublic void testGeneratedKeys() {Connection conn = null;PreparedStatement ps = null;ResultSet rs=null;try {conn = JDBCTools.getConnection();String sql = "INSERT INTO customers(name,email,birth) VALUES(?,?,?)";// 使用重载的prepareStatement方法来生产 PreparedStatement对象ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)...

java-Oracle中的CHAR主键列上的休眠和填充【代码】

使用Oracle中的char(6)列使用Hibernate时遇到了一些麻烦.这是表格的结构:CREATE TABLE ACCEPTANCE (USER_ID char(6) PRIMARY KEY NOT NULL,ACCEPT_DATE date );对于用户ID少于6个字符的记录,在使用SQuirreL运行查询时,可以选择它们而无需填充用户ID.即如果存在用户ID为“ abc”的记录,则以下内容将返回一条记录.select * from acceptance where user_id = "abc"不幸的是,通过Hibernate(JPA)进行选择时,以下返回null:em.find(Acce...

java-JDBC SQLite不强制执行唯一主键约束【代码】

谁能向我建议为什么我的SQLite JDBC数据库不执行唯一主键约束? 创建表的方法是:public static void TableCars(){Connection c = null;Statement stmt = null;try {Class.forName("org.sqlite.JDBC");c = DriverManager.getConnection("jdbc:sqlite:WalkerTechCars.db");System.out.println("Opened database successfully");stmt = c.createStatement();String sql = "CREATE TABLE IF NOT EXISTS CARS3 " +"(REGISTRATION TEXT ...

Java中获取刚插入数据库中的数据Id(主键,自动增长)

public int insert(String cName, String ebrand, String cGender) {String sql = "insert into Cloth (cname,ebrand,cgender) values(?,?,?) ";Connection conn = DruidUtil.getConn();PreparedStatement prep = null;ResultSet rs = null ;try {prep = conn.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);prep.setString(1, cName);prep.setString(2, ebrand);prep.setString(3, cGender);prep.executeUpdate(...

java – LONG作为Hibernate映射到MySQL的主键【代码】

我试图通过Hibernate映射到MySQL表来实现一些Java对象的持久性.当我提交时,我收到一条消息,说“批量更新从更新[0]返回了意外的行数;实际行数:0;预期:1′. 我的假设是问题是由于我的Java POJO中有一个长字段,我想用它作为MySQL表中的主键.由于我无法使用数据类型LONG作为我在MySQL表中的主键(ERROR 1170:BLOB / TEXT列’id’在密钥规范中使用而没有密钥长度)我从一些谷歌搜索得出结论,这post BIGINT将是合适的映射很长.但它没有更...

javaWeb_JDBC_JDBC获取数据库自动生成的主键值

JDBC_JDBC获取数据库自动生成主键值 1.意义: 在操作比较复杂的数据库表以及相关信息的时候,我们需要获取一条记录中的主键值,以便于别的业务逻辑操作该条记录,那么这一个时候 如果是数据库自己生成主键值,那么我们就有必要获取这一个主键值。 2.实现: 使用重载的 prepareStatement(sql, flag)来生成 PreparedStatement 对象,并调用ResultSet rs = preparedStatement.getGeneratedKeys(); 在 ResultSet 中只有一列 GENERAT...

Java MyBatis 插入数据库返回主键【代码】

如何在Java MyBatis 插入数据库返回主键? 最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记。 类似下面这段代码一样获取插入后的主键User user = new User(); user.setUserName("chenzhou"); user.setPassword("xxxx"); user.setComment("测试插入数据返回主键功能"); System.out.println("插入前主键为:"+user.getUserId()); userDao.insertAnd...

映射 - 相关标签