in reply to Re^2: Terminology: Is DBIx::Class an ORM?
in thread Terminology: Is DBIx::Class an ORM?

> Are you talking about the automatic generation of a new OO API definition from an existing database schema, and the reverse operation of automatically generating a new database schema from an existing OO API?

No.

The fundamental definition of an ORM I found is to hold data model inside an object system which is made persistent with a DB server.

That means mapping in one direction and the "data language" is limited to the semantics of the OOP model.

But that's a one way street.

Like with "Active Record".

> I thought several ORM frameworks are capable of that?

That would surprise me.

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

  • Comment on Re^3: Terminology: Is DBIx::Class an ORM?

Replies are listed 'Best First'.
Re^4: Terminology: Is DBIx::Class an ORM?
by haukex (Bishop) on Jun 06, 2021 at 15:40 UTC
    The fundamental definition of an ORM I found is to hold data model inside an object system which is made persistent with a DB server. That means mapping in one direction and the "data language" is limited to the semantics of the OOP model.

    As you know, academic discussions about excact terminology are not my strong suit, so I don't think I can help much there...

    > I thought several ORM frameworks are capable of that?
    That would surprise me.

    I checked, Hibernate is (one of) the framework(s) I worked with years ago, and there are tools to both generate class definitions from the database and generate database definitions from a class structure (I assume the former is less common).

      ah thanks for the link to Hibernate, Java is not my forte, but has a normative power when it comes to terminology.

      WP - which is not necessarily the best source, but links to some - says

      > It provides a framework for mapping an object-oriented domain model to a relational database.

      which is my understanding of ORMs

      but

      > Hibernate handles object–relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.

      so let's compromise that there are two kinds of ORMs, the basic ones which fail to address the mismatch and the advanced ones.

      In the end it's like quarreling if Canadians are Americans. =)

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery

      update

      Or rather if C++ is C ... ?