Tag: 序列

Clojure和HBase:通过扫描迭代懒惰

假设我想在clojure中打印hbase表扫描的输出。 (defmulti scan (fn [table & args] (map class args))) (defmethod scan [java.lang.String java.lang.String] [table start-key end-key] (let [scan (Scan. (Bytes/toBytes start-key) (Bytes/toBytes end-key))] (let [scanner (.getScanner table scan)] (doseq [result scanner] (prn (Bytes/toString (.getRow result)) (get-to-map result)))))) get-to-map将结果转换为地图。 它可以像这样运行: (hbase.table/scan table “key000001” “key999999”) 但是,如果我想让用户对扫描结果做些什么呢? 我可以允许它们将函数作为回调函数传递给每个结果。 但我的问题是:如果我希望用户能够懒散地迭代每个结果,我会返回什么 (Bytes/toString (.getRow result)) (get-to-map result) 而不是保留以前的结果,就像在lazy-seq的简单化中所发生的那样。

如何在UML序列图中表示监听器

在序列图中,您将如何表示事件触发的侦听器? 它不仅仅是一个常规的方法调用,所以这样显示似乎不正确。 我尝试制作包含JMS侦听器的系统的序列图。 我可以通过系统的send()调用启动生命线到JMS队列(显示系统调用send()作为业务角色),或者我可以在onMessage()调用时启动生命线。 (将JMS队列显示为业务角色)或者我应该忽略图中的整个JMS队列? 对于它的价值:我正在使用Astah Community来创建图表。

Hibernate Sequence Id Specification

我有这个注释来指定序列ID: @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = “parametro_seq_gen”) @SequenceGenerator(name = “parametro_seq_gen”, sequenceName = “PARAMETROS_SQ”, allocationSize = 1, initialValue = 1) 我发现在我的所有实体上重复都非常冗长。 有没有办法创建自定义注释或什么? 我只想指定序列名称 。

JPA Eclipselink错误的序列号

我正在使用一些映射到Oracle DB-Tables的实体。 对于ID-Generation,我使用的注释序列生成器如下: @Id @SequenceGenerator(name = “SEQ_RULES”, sequenceName = “SEQUENZ_RULES”) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = “SEQ_RULES”) @Column(name = “SERIALNO”) protected Long serialno; 在程序执行期间,我从我的实体创建一个新实例,并希望保留这个生成的实例。 重新启动数据库后,我通过JPA-EclipseLink获取了错误的序列号,但没有通过控制台直接在数据库上。 我在persistence.xml中启用了以下属性,以获取生成的语句中使用的绑定参数。 例如:如果我生成一个我的实体的新实例并希望保留这个实例,那么我将获得2717 for serialNo并且如果我执行 SELECT SEQUENZ_RULES.NEXTVAL FROM DUAL 我得到2767作为nextval。 问题是JPA生成的serialNo必须是唯一的,现在我仍然有一些带有这个serialNo的数据集。 我得到一个例外: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (JASON.SYS_C0084866) violated Non是否有任何缓存通过eclipse影响序列生成或可能是什么错误? 二手组件: GlassFish 3.1.1 EclipseLink 2.3.0.v20110604-r9504 数据库:Oracle版本:Oracle Database 11g 11.1.0.7.0版 – 64位 驱动程序:Oracle JDBC驱动程序版本:11.2.0.1.0 […]

如何从JDBC检索序列元数据?

我试图从Java代码(使用基本JDBC)检索我的Oracle DB的不同类型的元数据。 例如,如果我想检索带有_FOO后缀的表列表,我可以执行以下操作: Connection connection = dataSource.getConnection(); DatabaseMetaData meta = connection.getMetaData(); ResultSet tables = meta.getTables(connection.getCatalog(), null, “%_FOO”, new String[] { “TABLE” }); // Iterate on the ResultSet to get information on tables… 现在,我想从我的数据库中检索所有序列 (例如,所有序列都命名为S_xxx_FOO )。 我怎么会这样做,因为我没有在DatabaseMetaData看到与序列相关的任何内容? 我是否必须运行select * from user_sequences等查询?

java标准序列化顺序

我想知道以下示例类的属性将序列化的顺序: public class Example implements Serializable { private static final long serialVersionUID = 8845294179690379902L; public int score; public String name; public Date eventDate; } 编辑: 为什么我想知道这个: 我在我的一个类的文件中得到了一个序列化的字符串,它没有readObject()或writeObject()的实现。 现在实现已更改(某些属性已消失),我想编写一个处理旧序列化类的readObject()方法。 我只会阅读此属性但不会将其保存到创建的对象。 这基本上只适用于遗产我现在使用数据库但需要支持旧的序列化文件。 写这个readObject()我需要流中的属性顺序。

为什么这个Java方法泄漏 – 为什么内联它修复了泄漏?

我编写了一个最小的有点惰性( int )序列类GarbageTest.java ,作为一个实验,看看我是否可以在Clojure中处理Java中非常长的懒惰序列。 给定一个返回懒惰,无限,自然数序列的naturals()方法; drop(n,sequence)方法,它删除drop(n,sequence)的前n元素并返回sequence的其余部分; 和一个简单返回的nth(n,sequence)方法: drop(n, lazySeq).head() ,我写了两个测试: static int N = (int)1e6; // succeeds @ N = (int)1e8 with java -Xmx10m @Test public void dropTest() { assertThat( drop(N, naturals()).head(), is(N+1)); } // fails with OutOfMemoryError @ N = (int)1e6 with java -Xmx10m @Test public void nthTest() { assertThat( nth(N, naturals()), is(N+1)); } […]

给定一串整数,找出可以按连续顺序排列的所有可能的单词。

给定一串整数如何找出可以按连续顺序从中产生的所有可能的单词。 例如:11112 ans:AAAAB AKAB AAKB AAAL等 public static void main(String[] args) { String str=”11111124″; char strChar[]=str.toCharArray(); String target=””; for(int i=0;i<strChar.length;i++) { target=target+(char)Integer.parseInt(""+(16+strChar[i])); } System.out.println(target); } 我试图找到解决方案,但无法找到所有组合

如何从Oracle数据库中获取自动递增的PK?

可能重复: PLSQL JDBC:如何获取最后一行ID? 我已经实现了一个自动递增PK的触发器和序列,我使用Oracle 10g作为数据库。 现在我想使用JAVA插入一些东西,但我需要在INSERT之后立即将增加的PK保存在变量中。 我试过这个: PreparedStatement pstmt = connection.prepareStatement(“INSERT INTO sometable VALUES(?, ?)”, Statement.RETURN_GENERATED_KEYS); pstmt.setInt(1, 5); pstmt.setString(2, “Username”); pstmt.executeUpdate(); ResultSet resultSet = pstmt.getGeneratedKeys(); 但它不起作用。

Java部分(de)对象序列化

假设我们有3个类: class foo { // not a singleton String s; } class bar { foo f; int i; } class baz { foo sameF; } 现在我们创建实例 foo onlyFoo = new foo(“the only one”); bar theBar = new bar(onlyFoo, 123); baz theBaz = new baz(onlyFoo); 之后我们想将它们串行存储在一个文件中。 如果我们反序列化theBaz,修改onlyFoo并再次将theBaz反序列化为该文件,theBar仍包含原始的onlyFoo,因此有两个不同版本的onlyFoo。 我想要的是我存储theBaz和theBar 而不仅仅是Foo,分别存储三个对象,一旦有人反序列化了Baz我也想给他只有.Foo。 如果他再次对已更改的onlyFoo进行反序列化,则theBaz 和 theBar将具有相同的仅修改过的对象,因此如果有人请求对象(例如theBar),则会获得包含所有引用对象(onlyFoo)的完整序列化对象,就像正常的序列化过程将返回。 我知道我必须存储对象并手动和单独保存引用,因为默认序列化无法处理此问题。 我不知道的是如何部分序列化/反序列化Java对象? 我需要将原语及其包装器与“更高”的对象分开,并分别存储这些对象。 更新 […]