Tag: primary key

如何在java中将UUID保存为二进制(16)

我有一个表TestTable,列ID为二进制(16),名称为varchar(50) 我一直在尝试将一个有序的UUID存储为PK,就像本文以优化的方式存储UUID一样 我看到UUID作为HEX(blob)保存在数据库中 所以我想从java中保存这个ID,但是我收到了这个错误 数据截断:第1行的列“ID”的数据太长 我目前正在使用库sql2o与mysql进行交互 所以基本上这是我的代码 String suuid = UUID.randomUUID().toString(); String partial_id = suuid.substring(14,18) + suuid.substring(9, 13) + suuid.substring(0, 8) + suuid.substring(19, 23) + suuid.substring(24) String final_id = String.format(“%040x”, new BigInteger(1, partial_id.getBytes())); con.createQuery(“INSERT INTO TestTable(ID, Name) VALUES(:id, :name)”) .addParameter(“id”, final_id) .addParameter(“name”, “test1”).executeUpdate(); 部分ID应该是这样的11d8eebc58e0a7d796690800200c9a66 我在mysql中尝试了这个语句没有问题 insert into testtable(id, name) values(UNHEX(CONCAT(SUBSTR(uuid(), 15, 4),SUBSTR(uuid(), 10, 4),SUBSTR(uuid(), 1, […]

JPA:@PrimaryKeyJoinColumn(…)和@JoinColumn(…,insertable =?,updatable =?)相同?

如果@PrimaryKeyJoinColumn(…)没有可插入和可更新的参数,你可以从JPA规范派生@PrimaryKeyJoinColumn(…) @JoinColumn(…, insertable = false, updatable = false) 要么 @JoinColumn(…,insertable = true,updatable = true) 当用于常规(非inheritance)关联时? 他们应该可以互换吗? 设置的可插入和可更新属性是什么? 它们是否适合任何东西? 请注意,我只是针对两个(似乎)实现的只读属性… 我正在使用EclipseLink和Hibernate进行相当不一致的映射exception…… 这是@PrimaryKeyJoinColumn JavaEE 5 + 6 Javadoc: PrimaryKeyJoinColumn(JavaEE 5) PrimaryKeyJoinColumn(JavaEE 6) 引用: …它可以在OneToOne映射中使用,其中引用实体的主键用作引用实体的外键。

使用varchar作为主键的数据类型插入查询

该计划不接受下文所述的查询─ public class loginDaos { public void create(loginBean bean) { ConnectionPool c = ConnectionPool.getInstance(); c.initialize(); Connection con = c.getConnection(); try { String sql = “INSERT INTO login VALUES(?,?,?,?)”; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, bean.getCode()); pstmt.setString(2, bean.getUserid()); pstmt.setString(3, bean.getPassword()); pstmt.setString(4, bean.getPosition()); pstmt.executeUpdate(sql); } } catch (Exception e) { e.printStackTrace(); } } public static void main(String args[]) […]

主键类型:int vs long

我知道有些软件商店已经通过使用int类型作为持久化类的主键而被烧毁。 话虽这么说,并非所有的表都增长了20亿。 事实上,大多数人没有。 那么,你们是否只为那些映射到潜在大表的类或者每个持久类只使用一致的类来使用long类型? 什么是行业共识? 我会暂时搁置这个问题,以便您与我们分享您的成功/恐怖故事。