JavaDB/Hibernate/Swing自动排序
我有一个带有Hibernate和网络JavaDB/DerbyDB的JavaSwing应用程序。有一个表的结构如下: 测试问题IDJavaDB/Hibernate/Swing自动排序,java,hibernate,swing,derby,javadb,Java,Hibernate,Swing,Derby,Javadb,我有一个带有Hibernate和网络JavaDB/DerbyDB的JavaSwing应用程序。有一个表的结构如下: 测试问题ID T1234 Q1 T1234 Q2 T1234第三季度 T1234第四季度 .. .. T1234 Q10 其中TestID和QuestionID的组合被定义为主键。每当我添加/插入测试ID为“T1234”和问题ID为“Q10”的行时,该记录会立即添加到包含问题ID“Q1”的记录之后。例如: 测试问题ID T1234 Q1 T1234 Q10 T1234第三季度 T1
T1234 Q1
T1234 Q2
T1234第三季度
T1234第四季度
..
..
T1234 Q10
其中TestID和QuestionID的组合被定义为主键。每当我添加/插入测试ID为“T1234”和问题ID为“Q10”的行时,该记录会立即添加到包含问题ID“Q1”的记录之后。例如: 测试问题ID
T1234 Q1
T1234 Q10
T1234第三季度
T1234第四季度
我不希望这种情况发生,因为这会给我在获取记录时带来麻烦。你能告诉我该怎么做来避免这种情况吗 感谢您的帮助。两个想法:(a)将QuestionID存储为1、10、3、4等,并在应用程序中添加“Q”前缀,或(b)将QuestionID存储为0填充,如:Q001、Q010、Q003、Q004等。定义您自己的类型
class QuestionID implements Comparable<QuestionID> {…}
class QuestionID实现了可比较的{…}
并在
表格模型
中使用它,而不是字符串
。让它的构造函数提取从数据库返回的questionID
的数字部分,并让它的compareTo()
实现只检查该数字。类isJTableTest
就是一个例子。显然,数据库存储记录的顺序不一定与插入记录的顺序相同。因此,现在由于我必须按照将记录输入数据库的相同顺序获取记录,因此在进行插入时我使用自动递增计数器,在获取记录时使用order by子句(在计数器上)。获取记录有什么问题?如果需要对它们进行排序,则必须在“选择”菜单中指定query@user1041345你的代码有没有可能我自己也在试着做类似的事情