// Path: src/test/java/com/itranswarp/warpdb/test/User.java
// @Entity
// @Table(uniqueConstraints = @UniqueConstraint(name = "UNI_NameEmail", columnNames = { "name", "email" }), indexes = {
// 		@Index(name = "IDX_TagId", columnList = "the_tag"), @Index(unique = true, columnList = "name, the_tag") })
// public class User extends BaseEntity {
// 
// 	@Column(length = 100, nullable = false)
// 	public String name;
// 
// 	@Column(length = 100, unique = true, nullable = false, updatable = false)
// 	public String email;
// 
// 	private int age;
// 
// 	public int getAge() {
// 		return this.age;
// 	}
// 
// 	public void setAge(int age) {
// 		this.age = age;
// 	}
// 
// 	private double score;
// 
// 	public double getScore() {
// 		return this.score;
// 	}
// 
// 	public void setScore(double score) {
// 		this.score = score;
// 	}
// 
// 	@Transient
// 	public String fullName;
// 
// 	@Column(name = "the_tag")
// 	public String tag;
// 
// 	@Transient
// 	public List<Class<?>> callbacks = new ArrayList<>();
// 
// 	@PostLoad
// 	void postLoad() {
// 		callbacks.add(PostLoad.class);
// 	}
// 
// 	@PrePersist
// 	void prePersist() {
// 		callbacks.add(PrePersist.class);
// 		if (this.id == null) {
// 			this.id = nextId();
// 		}
// 		this.createdAt = this.updatedAt = System.currentTimeMillis();
// 	}
// 
// 	@PostPersist
// 	void postPersist() {
// 		callbacks.add(PostPersist.class);
// 	}
// 
// 	@PreUpdate
// 	void preUpdate() {
// 		callbacks.add(PreUpdate.class);
// 		this.updatedAt = System.currentTimeMillis();
// 	}
// 
// 	@PostUpdate
// 	void postUpdate() {
// 		callbacks.add(PostUpdate.class);
// 	}
// 
// 	@PreRemove
// 	void preRemove() {
// 		callbacks.add(PreRemove.class);
// 	}
// 
// 	@PostRemove
// 	void postRemove() {
// 		callbacks.add(PostRemove.class);
// 	}
// 
// }


import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
import com.itranswarp.warpdb.test.User;
package com.itranswarp.warpdb;





public class WarpDbBatchUpdateTest extends WarpDbTestBase {

	@Test
	public void testBatchUpdate() throws Exception {
		// insert batch with id=0~26:
		User[] users = new User[27];
		for (int i = 0; i < users.length; i++) {
			User user = new User();
			user.name = "Name-" + i;
			user.email = "name" + i + "@somewhere.org";
			users[i] = user;
		}
		warpdb.insert(Arrays.asList(users));
		long ts = System.currentTimeMillis();
		for (int i = 0; i < users.length; i++) {
// Path: src/test/java/com/itranswarp/warpdb/test/User.java
// @Entity
// @Table(uniqueConstraints = @UniqueConstraint(name = "UNI_NameEmail", columnNames = { "name", "email" }), indexes = {
// 		@Index(name = "IDX_TagId", columnList = "the_tag"), @Index(unique = true, columnList = "name, the_tag") })
// public class User extends BaseEntity {
// 
// 	@Column(length = 100, nullable = false)
// 	public String name;
// 
// 	@Column(length = 100, unique = true, nullable = false, updatable = false)
// 	public String email;
// 
// 	private int age;
// 
// 	public int getAge() {
// 		return this.age;
// 	}
// 
// 	public void setAge(int age) {
// 		this.age = age;
// 	}
// 
// 	private double score;
// 
// 	public double getScore() {
// 		return this.score;
// 	}
// 
// 	public void setScore(double score) {
// 		this.score = score;
// 	}
// 
// 	@Transient
// 	public String fullName;
// 
// 	@Column(name = "the_tag")
// 	public String tag;
// 
// 	@Transient
// 	public List<Class<?>> callbacks = new ArrayList<>();
// 
// 	@PostLoad
// 	void postLoad() {
// 		callbacks.add(PostLoad.class);
// 	}
// 
// 	@PrePersist
// 	void prePersist() {
// 		callbacks.add(PrePersist.class);
// 		if (this.id == null) {
// 			this.id = nextId();
// 		}
// 		this.createdAt = this.updatedAt = System.currentTimeMillis();
// 	}
// 
// 	@PostPersist
// 	void postPersist() {
// 		callbacks.add(PostPersist.class);
// 	}
// 
// 	@PreUpdate
// 	void preUpdate() {
// 		callbacks.add(PreUpdate.class);
// 		this.updatedAt = System.currentTimeMillis();
// 	}
// 
// 	@PostUpdate
// 	void postUpdate() {
// 		callbacks.add(PostUpdate.class);
// 	}
// 
// 	@PreRemove
// 	void preRemove() {
// 		callbacks.add(PreRemove.class);
// 	}
// 
// 	@PostRemove
// 	void postRemove() {
// 		callbacks.add(PostRemove.class);
// 	}
// 
// }


// Path: src/test/java/com/itranswarp/warpdb/WarpDbBatchUpdateTest.java
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
import com.itranswarp.warpdb.test.User;

package com.itranswarp.warpdb;





public class WarpDbBatchUpdateTest extends WarpDbTestBase {

	@Test
	public void testBatchUpdate() throws Exception {
		// insert batch with id=0~26:
		User[] users = new User[27];
		for (int i = 0; i < users.length; i++) {
			User user = new User();
			user.name = "Name-" + i;
			user.email = "name" + i + "@somewhere.org";
			users[i] = user;
		}
		warpdb.insert(Arrays.asList(users));
		long ts = System.currentTimeMillis();
		for (int i = 0; i < users.length; i++) {
			User user = users[i];