小编vin*_*han的帖子

Hibernate代理对象包含什么?

我可以从谷歌收集的是:

  • Hibernate使用代理对象来实现延迟加载.当我们请求从数据库加载Object,并且获取的Object具有对另一个具体对象的引用时,Hibernate返回代理而不是具体的关联对象.

  • Hibernate使用字节码检测(由javassist提供)创建代理对象.Hibernate在运行时使用代码生成库创建实体类的子类,并用新创建的代理替换实际对象.

那么,Proxy对象到底包含什么?

它是否包含仅设置了id字段的骨架对象引用对象?我们调用get方法时会设置其他字段吗?

Proxy对象是否包含JDBC语句以获取完全填充引用对象所需的所有数据.

还有什么我可能会失踪的吗?

我不是要求勺子喂食,但如果你能提供任何链接信息很棒.

对上述说明的任何更正也将受到欢迎.

例.

class Address {
   String city;
   String country;
}

class Person{
   int id;
   String name;
   Address address;
}    
Run Code Online (Sandbox Code Playgroud)

当我们尝试加载Person对象时,Hibernate会将Person类子类化为:

class ProxyPerson extends Person {
       int id;
       String name;
       Address proxyCGLIBObject;
}
Run Code Online (Sandbox Code Playgroud)

并返回一个ProxyPerson对象.ProxyPerson的对象将具有id和name的值,但是Address的代理.

我对么?

在代理对象上添加toString()方法可以期待什么?

java orm proxy hibernate hibernate-mapping

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

Spring原型遵循原型设计模式

Spring将bean范围提供为"Prototype".意味着只要应用程序中需要bean,Spring容器就会创建一个新的/新的bean实例.是否遵循原型设计模式?它是否只创建一次对象并在后续请求中调用创建的对象上的clone()方法来创建新对象?

此外,如果有人可以在JDK,Spring,Hibernate或任何J2EE框架中提供原型示例.

spring design-patterns prototype-pattern

6
推荐指数
1
解决办法
2006
查看次数

线程"main"中的异常org.hibernate.UnknownEntityTypeException:无法找到persister

我不得不问,我几乎尝试了一切.

实体类


@Entity
@Table(name="UserInfo")
public class User {

    @Id@Column(name="user_name")
    private String userName;

    @Column(name="user_id")
    private Integer userId;
}
Run Code Online (Sandbox Code Playgroud)
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;databaseName=BankingApplication</property>
        <property name="hibernate.connection.username">sa</property>
        <property name="hibernate.connection.password">2OmniWay</property>

        <!-- org.hibernate.HibernateException: No CurrentSessionContext configured! -->
        <property name="hibernate.current_session_context_class">thread</property>
         <property name="hibernate.default_schema">dbo</property>
        <!-- Mapping with model class containing annotations -->
        <mapping class="pojo.User"/>
    </session-factory>  
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

SeesionFactory

// Create the SessionFactory from hibernate.cfg.xml
Configuration configuration = new Configuration();
configuration.configure("hibernate-annotation.cfg.xml");
System.out.println("Hibernate Annotation Configuration loaded");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().                                    applySettings(configuration.getProperties()).build();
 System.out.println("Hibernate Annotation serviceRegistry created");             
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry); …
Run Code Online (Sandbox Code Playgroud)

java annotations hibernate hibernate-mapping

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