为什么我们需要@GeneratedValue?

时间:2015-08-04 16:38:54

标签: java jpa

现代数据库是否支持自动增量功能? 那么@Generatedvalue的目的是什么? 看来,通过这种方式,我们正在取代数据库功能。

1 个答案:

答案 0 :(得分:1)

id标记为自动递增。当我说“标记它”时,我的意思是:“嘿SQL!这一列是自动递增的!”您是否可以在SQL中声明主键列而不将其声明为自动递增?是的,你当然可以!因此,如果您将@Id long id; 列声明为:

id bigint(20) primary key

MySQL中的等价物如下:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
long id;

如果您将其声明为:

id bigint(20) primary key auto_increment
MySQL中的等价物将是:

( function() {
    var myApp = angular.module( "myApp", [ "anotherModule" ] );

    myApp.directive( "myDirective", function( $document ) {
        return {
            restrict: "A",
            link: function( scope, element, attr ) {
                var listenerCallback;

                var addListener = function( callback ) {
                    listenerCallback = callback;
                };

                // At an event I will call listenerCallback();
            }   
        };
    } );

    var anotherModule = angular.module( "anotherModule", [] );
    anotherModule.controller( "myController", [ "$scope", function( $scope ) {
        // Here i'd like to access the addListener function in myDirective
    } ] );
} )();