小编asc*_*ott的帖子

Hibernate - 字节码检测和字节码增强之间的区别?

我正在使用Hibernate 4.2和构建时间字节码检测来解决@OneToOne关系中出现的惰性问题和@Lob(https://developer.jboss.org/wiki/SomeExplanationsOnLazyLoadingone-to-one)

你知道之间有什么区别:

Hibernate字节码检测:http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch20.html#performance-fetching-lazyproperties

Hibernate字节码增强:http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch20.html#bytecode-enhancement

因为在hibernate文档中,它写成:

EnhancementTask旨在作为InstrumentTask的完全替代品.此外,它也与InstrumentTask不兼容,因此需要再次从源构建任何现有的检测类.

我可以通过使用字节码检测来解决我的问题,但它不能通过使用字节码增强来工作.你知道为什么吗 ?

也许,这个新功能还没有完全开发出来?

谢谢你的帮助.

java hibernate lazy-loading

24
推荐指数
1
解决办法
4946
查看次数

JGit - 推送分支并添加上游(-u选项)

JGit,我搜索推送分支并添加上游引用(跟踪)的方法.

它是期权-u--set-upstream推命令.

我没有在课堂上看到PushCommand允许这样做的方法.

拜托,你能告诉我怎么做吗?

PushCommand pushCommand = git.push()
                    .setRemote(remoteAlias)
                    .setRefSpecs(spec);
Run Code Online (Sandbox Code Playgroud)

java jgit

10
推荐指数
1
解决办法
1180
查看次数

使用Hibernate在多租户应用程序中管理连接池

我正在尝试使用单独的架构方法设置多租户应用程序。

我在Hibernate 4实现中使用JPA。

就像在这个非常有用的线程中所说的@ ben75一样,有很多方法可以管理连接(每个租户共享或拥有自己的连接)。

我已经开发了基于单独模式的第一个解决方案,但是具有一个共享的连接池,例如该线程。这很好,但我认为如果每个租户都可以拥有自己的连接,那会更好,因为一个租户不会降低其他租户的表现。

这种方法似乎类似于单独的数据库方法,但是我不知道如何创建连接(使用C3P0或其他方法?)。在休眠文档中,他们使用类ConnectionProviderUtils,但是我真的不知道该类做了什么。

MultiTenantConnectionProviderImpl

public class MultiTenantConnectionProviderImpl extends AbstractMultiTenantConnectionProvider {  

private C3P0ConnectionProvider connectionProvider = null;

@Override
protected ConnectionProvider getAnyConnectionProvider() {
    // my main question is here 

}

@Override
protected ConnectionProvider selectConnectionProvider(String tenantIdentifier) {
   // and here - how create a new connection ?
}
Run Code Online (Sandbox Code Playgroud)

关于@ Ben75 的答案,他说我必须从文件中获取默认的休眠和c3po配置属性并更改架构。或者,如果租户有其他用户,也可能是用户名/密码。

你知道我该怎么做吗?是否有一些用于读取persistence.xml并创建连接的类?

我已经找到了使用JNDI服务获取良好数据源的独立数据库方法的示例,但是在我的应用程序中却没有(不是完整的Java EE)。

编辑

在Oracle上似乎有一个实现可行的实现(在此示例中,用户名/密码与tenantId相同):

public class MultiTenantConnectionProviderImpl extends AbstractMultiTenantConnectionProvider
    implements ServiceRegistryAwareService {

     private Map<String, C3P0ConnectionProvider> connectionPool = new HashMap<>(); …
Run Code Online (Sandbox Code Playgroud)

java hibernate c3p0 multi-tenant

6
推荐指数
0
解决办法
1616
查看次数

JOOQ - 将结果转换为Pojo

我已经看到JOOQ可以在我们使用.selectFrom(TABLE)或 时自动返回POJO.fetchInto(POJO.class);

但是有可能将复杂查询的结果转换为多个POJO吗?

示例:

此查询将所有列的数组返回到表Support和Box中.可以将它们转换为Support和Box Pojo吗?

Result<Record> results = query.select()
                         .from(BOX)
                         .join(SUPPORT)
                         .on(SUPPORT.ID.equal(BOX.SUPPORT_ID))
                         .where(SUPPORT.ID.equal("XXXX"))
                         .orderBy(BOX.ID)
                         .fetch();
Run Code Online (Sandbox Code Playgroud)

我测试了这个方法.intoGroups(SUPPORT.ID, Box.class),它运行正常.但我没有支持对象.

java sql jooq

2
推荐指数
1
解决办法
5951
查看次数

标签 统计

java ×4

hibernate ×2

c3p0 ×1

jgit ×1

jooq ×1

lazy-loading ×1

multi-tenant ×1

sql ×1