我有一个具有以下NLS设置的数据库
NLS_NCHAR_CHARACTERSET - AL16UTF16
NLS_CHARACTERSET - AL32UTF8
Run Code Online (Sandbox Code Playgroud)
有一个表,其中包含存储base64编码数据的clob列.由于字符主要是英文和字母,我假设每个字符仅占用1个字节作为clob,使用NLS_CHARACTERSET的字符集进行编码.
使用内联启用的clob列,clob将以内联方式存储,除非它的大小超过4096字节.但是,当我尝试使用2048个字符存储一组数据时,我发现它没有内联存储(通过检查表DBA_TABLES).那么它是否意味着每个字符只使用1个字节?任何人都可以详细说明这个吗?
添加了另一个测试:创建一个包含块大小为8kb的clob列的表,以便初始段大小为65536字节.在clob列中插入一行包含32,768个字符.可以通过查询dba_segments来告知第二个范围创建.
我在Jboss AS 6.0.0 final上使用Hibernate 3.6.0和JPA 2.在我的EJB中,有一种方法可以更新实体值并对其进行一些查询.整个方法在BMT事务中运行.如果有任何失败,所有更改都应该回滚,而不是提交给DB.
数据库是mySql.
在运行JPA查询之前,JPA会自动将更改的状态刷新到DB,以防止任何过时的数据返回.但是,在我的方法中,自动刷新直接更新并将更改提交到DB,甚至之后出现了错误,更改不会回滚.所以我想问一下我的设置中是否有错误的配置,或者这是一个错误或什么的.
EJB
@Stateless(mappedName = "MyManagementBean")
@Local
@TransactionManagement(TransactionManagementType.BEAN)
public class MyManagement implements MyManagementLocal,MyManagementRemote {
@PersistenceUnit(unitName="MyEjb") EntityManagerFactory emf;
@Resource UserTransaction utx;
@Resource SessionContext ctx;
/**
* Default constructor.
*/
public MyManagement () {
// TODO Auto-generated constructor stub
}
public void dosomething(String id) throws Exception
{
try {
utx.begin();
em = emf.createEntityManager();
Myline line = em.find(Myline.class, id);
line.setStatus("R");
Stromg q += " from Myline as line ";
//auto flush apply here and directly committed to …Run Code Online (Sandbox Code Playgroud) hibernate transactions entitymanager hibernate-entitymanager jpa-2.0
假设我在Java中包含一个包含非ASCII字符的字符串,我想用String.format()它来设置它,这样格式化的字符串将具有字符串字节长度的最小宽度.
String s = "æøå";
String.format(l, "%" + 10 + "s" , s);
Run Code Online (Sandbox Code Playgroud)
这将导致一个带有7个前导空格的字符串.
但我想要的是应该只有4个前导空格,因为原始字符串的大小为6个字节.
这似乎是一个常见的要求所以我想问一下是否有任何已经构建的类可以实现这一点,或者我应该自己去实现Formattable接口?
假设我有一个像这样的简单函数.
$('body').ajaxSuccess(function(){alert('global');}
);
$.post('http://www.google.com',
{ name: "John", time: "2pm" } ,
function(data,s,xhr) {
alert('local');
});
Run Code Online (Sandbox Code Playgroud)
可以在本地成功回调之前调用全局ajaxSuccess()函数吗?因为我想在本地函数进一步处理之前对结果进行全局检查.
假设我有一个使用JPA列出实体的通用方法
public <T> List<T> list(Class<T> entity) throws Exception {
List<T> result = new ArrayList<T>();
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<T> query = builder.createQuery( entity );
Root<T> root = query.from( entity );
query.select( root );
//possible?
query.orderBy(builder.asc(...));
result = em.createQuery( query ).getResultList();
return result;
}
Run Code Online (Sandbox Code Playgroud)
无论如何我们要添加orderby到查询并通过主键进行排序而不指定主列作为表达式?我的意思是,有一个Key/ Constant或东西在JPA意味着任何实体的主键列,或一个实用程序方法来检索它?
hibernate ×2
jpa-2.0 ×2
ajax ×1
criteria-api ×1
formatter ×1
java ×1
jquery ×1
oracle ×1
transactions ×1