小编use*_*008的帖子

如何以编程方式为特定实体字段添加属性转换器?

假设我javax.persistence.AttributeConverter调用了实现,FooConverter并且我想将此转换器应用于特定的实体字段。

如果我使用注释方法,它看起来像:

@Column
@Convert(converter = FooConverter.class)
private String barField;
Run Code Online (Sandbox Code Playgroud)

在 orm XML 映射上,它看起来像:

<entity class="com.example.FooBarEntity">
  <convert converter="com.example.FooConverter" attribute-name="barField"/>
</entity>
Run Code Online (Sandbox Code Playgroud)

但是,我想在javax.persistence.EntityManagerFactory配置期间以编程方式添加此转换器。

import org.hibernate.cfg.Configuration;
import org.springframework.orm.hibernate5.LocalSessionFactoryBuilder;

private EntityManagerFactory buildEntityManagerFactory() {
  Configuration config = new LocalSessionFactoryBuilder(dataSource);
  config.addAnnotatedClass(com.example.FooBarEntity.class);
  // I looking for something like config.addConverter(FooConverter, FooBarEntity, barField);
  return config.buildSessionFactory();
}
Run Code Online (Sandbox Code Playgroud)

config.addAttributeConverter方法,但它似乎只创建转换器实例,而不是将其绑定到特定的实体属性。但是,我只想将转换器应用于特定String领域,所以autoApply不是一个选项。

java hibernate

9
推荐指数
1
解决办法
1373
查看次数

在 PHP 上使用 Final Constructor 扩展类

我想要具有最终构造函数的扩展类(在我的情况下它是 SimpleXMLElement),但是我遇到了问题,因为当我使用时:

    class myclass extends SimpleXMLElement {
        function __construct($xmlVersion='1.0', $xmlEncoding='ISO-8859-1', $rootName='root'){
            parent::__construct("<?xml version='$xmlVersion' encoding='$xmlEncoding'?><$rootName />");
        }
Run Code Online (Sandbox Code Playgroud)

我得到错误:

致命错误:无法覆盖最终方法 SimpleXMLElement::__construct()

当我删除构造函数时,出现此错误:

致命错误:未捕获的异常“异常”,消息为“SimpleXMLElement::__construct() 需要至少 1 个参数,给定 0”

我错过了一些东西或不明白如何正确调用最终的父构造函数。我不想覆盖方法只是扩展类,但我无法扩展,因为它需要 __construct()。所以我错过了一些东西,然后又回到了开始的地方。

有人可以解释我错在哪里吗?

php

6
推荐指数
2
解决办法
7884
查看次数

如何以编程方式为选定的实体字段绑定休眠类型?

我正在寻找一种Type在实体管理器配置阶段绑定特定实体字段的方法。我需要它能够使用外部源将额外的“规则”应用于目标实体字段,而无需更改实体类。

因此,基本上我正在尝试避免如下硬编码@Type注释方式:

@Type(type = foo.package.MyType, parameters = {
    @Parameter(name = "fooProperty", value = "fooValue")
})
private String someField;
Run Code Online (Sandbox Code Playgroud)

相反,我想在以someField编程方式构建模型时将Type设置为。

java hibernate hibernate-mapping

5
推荐指数
1
解决办法
181
查看次数

在SESSION应该保存什么东西,什么不应该?

我举一个例子,为什么这个问题出现在我脑海中:让我说我创建了扩展PDO类的类'PDOstart'.在类'PDOstart'上,PDO所需的所有变量都在私有部分(如主机,用户,密码和ect)上定义.所以它很容易使用PDO类:

$con = new PDOstart();
$con->query("SELECT ... ");
Run Code Online (Sandbox Code Playgroud)

因为在我的网页上我只使用一个数据库,所以我开始考虑为什么不将PDOstart对象添加到SESSION中?喜欢:$_SESSION['db'] = $con;?所以我不需要在每个页面都做"新的PODstart".但我不确定那会是个好主意......

有什么我应该避免添加到$ _SESSION(出于安全或性能原因)?

php session

4
推荐指数
1
解决办法
1625
查看次数

标签 统计

hibernate ×2

java ×2

php ×2

hibernate-mapping ×1

session ×1